Seite 1 von 1

SQL Datenfile abfragen

Verfasst: 13.12.2010 18:19
von Velindos
Hallo,
habe folgendes Problem, wenn ich beim Start meines Programmes die Datenbankfile abfrage(siehe Code) blockiert Sie meinen Eingaben!

Code: Alles auswählen

Procedure DatenbankAnlegen()
  
  Protected DB
  DB=1
  DataBankVorhanden=ReadFile (#PB_Any,DatabaseFile$)
  
  If DataBankVorhanden = 0
    If CreateFile(DB, DatabaseFile$)
      Debug "file war nicht vorhanden = "+Str(DataBankVorhanden)
      CloseFile(DB)
      OpenDatabase(DB, DatabaseFile$, "", "", #PB_Database_SQLite)
      DatabaseUpdate(DB, "Create Table Velindos (ID INTEGER PRIMARY KEY AUTOINCREMENT, Stichwort TEXT,Notiz TEXT,Pfad TEXT, myBild BLOB)")
      CloseDatabase(DB)
      
    EndIf
    Debug "File created"
  Else
    MessageRequester("Information","Konnte Datei nicht erstellen!")
  EndIf
  
EndProcedure
Gibt es eine andere Lösung?

Gruss ... Velindos

Re: SQL Datenfile abfragen

Verfasst: 13.12.2010 18:43
von ts-soft
Eine Datei kann nur einmal geöffnet werden. Ausserdem überprüft man das vorhandensein
mit FileSize()

Code: Alles auswählen

Procedure DatenbankAnlegen()
 
  Protected DB
  DB=1
  ;DataBankVorhanden=ReadFile (#PB_Any,DatabaseFile$)
  If FileSize(DatabaseFile$) >= 0
    DataBankVorhanden = #True
  EndIf
  If DataBankVorhanden = 0
    If CreateFile(DB, DatabaseFile$)
      Debug "file war nicht vorhanden = "+Str(DataBankVorhanden)
      CloseFile(DB)
      OpenDatabase(DB, DatabaseFile$, "", "", #PB_Database_SQLite)
      DatabaseUpdate(DB, "Create Table Velindos (ID INTEGER PRIMARY KEY AUTOINCREMENT, Stichwort TEXT,Notiz TEXT,Pfad TEXT, myBild BLOB)")
      CloseDatabase(DB)
     
    EndIf
    Debug "File created"
  Else
    MessageRequester("Information","Konnte Datei nicht erstellen!")
  EndIf
 
EndProcedure 
Gruß
Thomas

Re: SQL Datenfile abfragen

Verfasst: 13.12.2010 18:49
von Velindos
Hallo Thomas,
habs nicht gecheckt das mit dem Filesize.

Die Sache funkt, danke für die rasche Hilfe!

Gruss ... Velindos

Re: SQL Datenfile abfragen

Verfasst: 13.12.2010 19:12
von ts-soft
Velindos hat geschrieben:Die Sache funkt, danke für die rasche Hilfe!
Gern geschehen, trotzdem noch eine Bitte:
Ergänze solche Prozeduren in soweit, das man es sofort testen kann, also:
Deklaration von DatabaseFile$ und DataBankVorhanden sind nicht ersichtlich.

DatenbankAnlegen() unter der Procedure damit es dann auch was tut :wink:

Angaben zu Threadsafe, Unicode, x64 usw. sollten auch immer bei sein.

Mach es den Testern so einfach wie möglich, schließlich möchtest Du ja, das
diese für Dich "schuften" :mrgreen:

Gruß
Thomas