Seite 1 von 1

Executeable erstellen und Datenbankzugriff funktioniert nicht mehr

Verfasst: 03.04.2022 19:13
von 9Chicane9
Hallo zusammen!

Verwende PureBasic seit einer Woche und zähle mich somit zu den blutigen Anfängern!

Die Sprache gefällt mir allerdings ganz gut und ich habe auch schon so einiges geschafft mit Hilfe der Beispiele.

Jetzt ist mir jedoch was aufgefallen, was ich nicht verstehe.
Mein Code läuft fehlerfrei wenn ich auf "Kompilieren/Starten" drücke.
Wenn ich jedoch eine .exe erzeuge (mit "executeable erstellen..."), dann fehlt einfach die komplette Datenbank Komponente.
Das heißt: OpenDatabase funktioniert nicht.

Warum?

Ich arbeite noch mit der Free Version. Ist das der Grund?

Code: Alles auswählen

   Define.s Waage, Brutto, Datum, Zeit, Einheit, Cycle
   If OpenDatabase(#db1, "host=xxx port=3306 dbname=Waagen", "xx", "xx", #PB_Database_MySQL)
     
     If DatabaseQuery(#db1, "SELECT * FROM gewicht Where terminalnr=" + StrU(Terminal))
       While NextDatabaseRow(#db1)
         Datum=GetDatabaseString(#db1, 3)
         Zeit=GetDatabaseString(#db1, 4)
         Brutto=GetDatabaseString(#db1, 7)
         Waage=GetDatabaseString(#db1, 13)
         Einheit=GetDatabaseString(#db1, 10)
         Cycle=GetDatabaseString(#db1, 15)
         SetGadgetText(#text1, "Waage " + Waage + "   Datum: " + Datum + "   Zeit: " + Zeit + "   Gewicht: " +Brutto + Einheit + "   Zyklus: " + Cycle)
       Wend
       FinishDatabaseQuery(#db1)
     EndIf
     CloseDatabase(#db1)
   Else
     MessageRequester("Fehler","Can't open database! " + DatabaseError())
   EndIf
   
Messagerequester bringt nur: "Can't open database! "

Re: Executeable erstellen und Datenbankzugriff funktioniert nicht mehr

Verfasst: 03.04.2022 19:23
von HeX0R

Re: Executeable erstellen und Datenbankzugriff funktioniert nicht mehr

Verfasst: 03.04.2022 20:18
von Andesdaf
Du musst bei MySQL-Datenbankzugriff die MariaDB-DLL im selben Verzeichnis wie die erstellte Executable ablegen, s. die von HeX0R verlinkte Hilfseite.

Re: Executeable erstellen und Datenbankzugriff funktioniert nicht mehr

Verfasst: 03.04.2022 21:38
von 9Chicane9
Danke an HeX0R und Andesdaf!

JA, Ich hatte die Anleitung gelesen, aber irgendwie geglaubt, dass das nur bei Linux und OSX notwendig ist!
Mit der libmariadb.dll im selben Verzeichnis geht es tatsächlich wie im IDE!

Vielen Dank für die Hilfe

Re: Executeable erstellen und Datenbankzugriff funktioniert nicht mehr

Verfasst: 03.04.2022 23:40
von mk-soft
Damit es nicht später zum falschen path zur library kommt ...

Code: Alles auswählen


Macro GetProgramPath()
  GetPathPart(ProgramFilename())
EndMacro

path_libmariadb.s = GetProgramPath() + "libmariadb.dll"

CompilerIf Not #PB_Compiler_Debugger
  If Not UseMySQLDatabase(path_libmariadb)
    MessageRequester("Error", "Init Library " + path_libmariadb, #PB_MessageRequester_Error)
    ;TODO
  EndIf
CompilerElse
  If Not UseMySQLDatabase()
    MessageRequester("Error", "Init Library libmariadb", #PB_MessageRequester_Error)
    ;TODO
  EndIf
CompilerEndIf