Fehlermeldung bei Verwendung einer externen sqlite3.dll

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Purethom
Beiträge: 50
Registriert: 21.09.2004 05:41
Wohnort: Berlin

Fehlermeldung bei Verwendung einer externen sqlite3.dll

Beitrag von Purethom »

Hallo PureBasic-Gemeinde,

ich habe ein Problem bei der Verwendung einer externen sqlite3.dll. Zu Testzwecken habe ich den Example-Code aus der PB-Hilfe verwendet.

Code: Alles auswählen

UseSQLiteDatabase("sqlite3.dll")

  Filename$ = OpenFileRequester("Wähle einen Dateinamen", "PureBasic.sqlite", "*.sqlite|*.sqlite", 0)

  If CreateFile(0, Filename$)
    Debug "Datenbank-Datei erstellt"
    CloseFile(0)
  EndIf
  
  If OpenDatabase(0, Filename$, "", "")
    Debug "Verbunden mit PureBasic.sqlite"
    If DatabaseUpdate(0, "CREATE TABLE info (test VARCHAR(255));")
      Debug "Tabelle erstellt"
    EndIf
  EndIf
Die externe sqlite3.dll liegt in selben Verzeichnis wie der Quellcode. Das Programm läuft auch gut durch, aber zum Schluss bekomme ich folgende Fehlermeldung:

[08:59:23] Warte auf den Start des Executable...
[08:59:23] Executable-Typ: Windows - x64 (64bit, Unicode)
[08:59:23] Executable gestartet.
[08:59:34] [ERROR] pbExterneSQLiteDllTest.pb (Zeile: 16)
[08:59:34] [ERROR] Ungültiger Speicherzugriff. (Schreibfehler an der Adresse 6442455800)

Bei Verwendung der internen sqlite3-Funktionalität gibt es keine Probleme.
Was mache ich falsch?

Vielen Dank im Voraus und liebe Grüße sendet

Thomas
Finde Gelassenheit bei Dingen, die du nicht ändern kannst!
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Fehlermeldung bei Verwendung einer externen sqlite3.dll

Beitrag von Kiffi »

Purethom hat geschrieben:Die externe sqlite3.dll liegt in selben Verzeichnis wie der Quellcode.
Schuss in's Blaue:

Das hier auch angehakt?

Bild
Hygge
Benutzeravatar
Purethom
Beiträge: 50
Registriert: 21.09.2004 05:41
Wohnort: Berlin

Re: Fehlermeldung bei Verwendung einer externen sqlite3.dll

Beitrag von Purethom »

Hallo Kiffi,

war nicht angehakt, jetzt schon. Aber leider keine Veränderung.

LG

Thomas
Finde Gelassenheit bei Dingen, die du nicht ändern kannst!
Benutzeravatar
HeX0R
Beiträge: 2959
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Fehlermeldung bei Verwendung einer externen sqlite3.dll

Beitrag von HeX0R »

CloseDataBase()
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Fehlermeldung bei Verwendung einer externen sqlite3.dll

Beitrag von Kiffi »

HeX0R hat geschrieben:CloseDataBase()
gnaaa... 9 Minuten zu spät.
Hygge
Benutzeravatar
Purethom
Beiträge: 50
Registriert: 21.09.2004 05:41
Wohnort: Berlin

Re: Fehlermeldung bei Verwendung einer externen sqlite3.dll

Beitrag von Purethom »

Danke HeXOR und Kiffi,

so geht's. Keine Fehlermeldung mehr. Hätte ich das irgendwo erlesen können? Anscheinend ist CloseDataBase() bei der internen sqlite3-Funktionalität nicht wirklich erforderlich. In der Hilfe zu CloseDateBase() steht:

Anmerkungen
Alle noch offenen Datenbanken werden automatisch geschlossen, wenn das Programm endet.

Also nochmals herzlichen Dank für eure Hilfe!

LG

Thomas
Finde Gelassenheit bei Dingen, die du nicht ändern kannst!
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: Fehlermeldung bei Verwendung einer externen sqlite3.dll

Beitrag von Benubi »

Könnte ein Bug oder Glitch sein. Ich könnte mir vorstellen, daß das Update nebenläufig noch ausgeführt wird wenn das Programm beendet. Dann wird irgendetwas Benutztes freigegeben, wo ein normales CloseDatabase() erst einmal abgewartet hätte. Passiert etwas anders wenn Du statt CloseDatabase() ein Delay(10) machst?

Nun jedenfalls sollte man immer alles schließen was man öffnet - mache ich aber auch nicht immer >:)
Antworten