Probleme mit Öffnen einer MySQL Datenbank

Für allgemeine Fragen zur Programmierung mit PureBasic.
MenschMarkus
Beiträge: 220
Registriert: 30.04.2009 21:21
Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS

Probleme mit Öffnen einer MySQL Datenbank

Beitrag von MenschMarkus »

Hallo zusammen,

ich bin gerade dabei Daten aus einer meiner Tabellen aus meiner online DB (MySQL) aus dem Internet auszulesen.
Der Programmcode ist korrekt und funktionstüchtig. Im Debugmodus funktioniert alles einwandfrei. Generiere ich aber eine ausführbare Datei funktioniert der Zugriff nicht mehr. Dabei ist es egal ob ich das Programm in 32 oder 64 bit compiliere.
Erstaunlicherweise gibt ein aufgerufenes DatabaseError() nach OpenDatabase() keine Fehlermeldung aus. Sowohl im Debug Modus wie auch in der ausführbaren Datei.
Ist das nur bei mir so oder gibt es da noch andere betroffene?

Code: Alles auswählen

UseMySQLDatabase()
InitNetwork()
#News = 0
CreateFile(0,"X64_DB_Test.txt")
  If OpenDatabase(#News,"host=my.url.de dbname=my_db_name  port=3306","MyUserName","MyPassword",#PB_Database_MySQL)
    DatabaseQuery(#News,"SELECT * FROM `my_table_name`")
    While NextDatabaseRow(#News)
      WriteStringN(0,GetDatabaseString(#News,DatabaseColumnIndex(#News,"date")))
      WriteStringN(0,GetDatabaseString(#News,DatabaseColumnIndex(#News,headline")))
      WriteStringN(0,GetDatabaseString(#News,DatabaseColumnIndex(#News,"level")))
      WriteStringN(0,GetDatabaseString(#News,DatabaseColumnIndex(#News,"priority")))
      WriteStringN(0,GetDatabaseString(#News,DatabaseColumnIndex(#News,"text")))
    Wend
    FinishDatabaseQuery(#News)
    CloseDatabase(#News)
  Else
    WriteStringN(0,"Open Database failed")
  EndIf
CloseFile(0)
  
Wissen schadet nur dem, der es nicht hat !
Benutzeravatar
TroaX
Beiträge: 660
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Probleme mit Öffnen einer MySQL Datenbank

Beitrag von TroaX »

https://www.purebasic.com/german/docume ... abase.html

UseMySQLDatabase hat einen Parameter, der einen String zum Pfad der libmariadb.dll enthalten muss. Ohne die Datei bzw. den Pfad wird er das wohl nicht gewuppt bekommen. Versuche es mal ohne Pfadangabe, aber mit der DLL im gleichen Ordner wie die Executable. Wenn das nicht geht, trage mal den Pfad ein. Ich denke mal das wird das Problem sein.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
MenschMarkus
Beiträge: 220
Registriert: 30.04.2009 21:21
Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS

Re: Probleme mit Öffnen einer MySQL Datenbank

Beitrag von MenschMarkus »

OK Danke TroaX,
so funktioniert es. Jetzt kann ich weiter arbeiten. Habe in der Tat die Hilfe für MySQL nicht gelesen.

Das erklärt zwar nicht, warum es ohne die explizite Einbindung der DLL beim UseMySQLDatabase() Aufruf im Debug Modus trotzdem funktioniert, in der compilierten Version aber nicht .... /:->
Das zu wissen ist aber für das Projekt nicht relevant.
Wissen schadet nur dem, der es nicht hat !
Benutzeravatar
TroaX
Beiträge: 660
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Probleme mit Öffnen einer MySQL Datenbank

Beitrag von TroaX »

Das liegt daran, weil Purebasic im Debug wohl das ganze automatisch mit der Lib aus dem Compiler-Ordner verknüpft. In einer Build kann das Programm aber nicht einfach davon ausgehen, das der Ordner existiert.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
MenschMarkus
Beiträge: 220
Registriert: 30.04.2009 21:21
Computerausstattung: i5-2300 (2.8 Ghz) Win10 -64bit / PB 5.73 LTS

Re: Probleme mit Öffnen einer MySQL Datenbank

Beitrag von MenschMarkus »

Hm,
schade, dass die Lib nicht so eingebunden werde kann wie UserLibs, die ja permanent zur Verfügung stehen.
So muss halt immer die "libmariadb.dll" mit im Programmverzeichnis bzw. verknüpften Verzeichnis stehen.
Die mitgelieferten Libs des Maria DB Systems können ja leider nicht als User Lib mit eingebunden werden.
(Man sieht wohl schon, da kenne ich mich nicht so richtig aus)

Da fällt mir ein, wie war das mit dem direkten Einbinden einer MSSQL DB? Geht das überhaupt? Ich habe da in der Hilfe unter MSSQL leider nichts gefunden. Es gibt ja auch keinen passenden Use Befehl.
Via ODBC ist das kein Problem.
Wissen schadet nur dem, der es nicht hat !
Antworten