Code: Select all
UseSQLiteDatabase()
DatabaseFile$ = GetCurrentDirectory() + "libdata.file"
Enumeration
#db
#db2
EndEnumeration
Procedure CheckDatabaseQuery(Database, Query$)
Result = DatabaseQuery(Database, Query$)
If Result = 0
txt$ = DatabaseError()
If txt$ <> "file is not a database"; in case of no db file, alert will come later.
MessageRequester("error","Error occurred while reading for the database: " + txt$, #MB_ICONERROR)
EndIf
EndIf
ProcedureReturn Result
EndProcedure
Procedure.a IsDB(File$)
If OpenDatabase(#db2, File$, "", "", #PB_Database_SQLite)
If CheckDatabaseQuery(#db2, "select value FROM Settings WHERE Var = 'CheckDays'")
NextDatabaseRow(#db2)
i = GetDatabaseLong(#db2, 0)
FinishDatabaseQuery(#db2)
CloseDatabase(#db2)
If i > 0
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
Else
ProcedureReturn 0
EndIf
Else
ProcedureReturn 0
EndIf
EndProcedure
If FileSize(DatabaseFile$) = -1 Or FileSize(DatabaseFile$) = 0
;we create and load a new db file
Else
If OpenDatabase(#db, DatabaseFile$, "", "", #PB_Database_SQLite)
If IsDB(DatabaseFile$) = 0
If MessageRequester("error","libdata.file is a not a valid database file. Do you want to create a new one?",#PB_MessageRequester_YesNo|#MB_ICONERROR) = #PB_MessageRequester_Yes
CloseDatabase(#db)
DeleteFile(DatabaseFile$)
CreateFile(0,DatabaseFile$);create the file if it doesn't exist
CloseFile(0)
If OpenDatabase(#db, DatabaseFile$, "", "", #PB_Database_SQLite)
;CheckDB();let it write the data
EndIf
Else
MessageRequester("error","the app cannot run without a valid database file and it will terminate", #PB_MessageRequester_Ok | #MB_ICONERROR)
End
EndIf
EndIf
EndIf
EndIf
