SQL Datenfile abfragen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

SQL Datenfile abfragen

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: SQL Datenfile abfragen

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: SQL Datenfile abfragen

Beitrag von Velindos »

Hallo Thomas,
habs nicht gecheckt das mit dem Filesize.

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

Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: SQL Datenfile abfragen

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten