Seite 1 von 1

MySQL funktioniert nur im Editor-Run

Verfasst: 29.03.2019 20:26
von legion
Hallo meine Freunde !
Nach jahrelanger PB Abstinenz hab ich mich entschlossen PB 5.70 LTS zu kaufen.
Ausschlaggebend dafür war die MySQL und High-DPI Unterstützung.

Doch mit MySQL hab ich momentan so meine Schwierigkeiten.
Der Code funktioniert im PB-Editor bei der Ausführung ganz normal, jedoch
nach der Kompilierung in eine Ausführbare Datei (egal ob exe oder unter Linux) ist
eine Verbindung zum SQL-Server nicht mehr möglich.

Code: Alles auswählen

UseMySQLDatabase()

  Procedure SizeWindowHandler()
    ResizeGadget(0, #PB_Ignore, #PB_Ignore, WindowWidth(EventWindow()), 230)
    ResizeGadget(1, #PB_Ignore, #PB_Ignore, WindowWidth(EventWindow()), WindowHeight(EventWindow()))
  EndProcedure
    
  
  BindEvent(#PB_Event_SizeWindow, @SizeWindowHandler())
  
  If OpenWindow(0, 0, 0, 1600, 900, "Wetterdaten Balkon", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget) 
    ListIconGadget(1, 0, 0, 1600, 900, "ID", 150, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(1, 1, "Datum", 150)
    AddGadgetColumn(1, 2, "Uhrzeit", 150)
    AddGadgetColumn(1, 3, "Temperatur °C", 150)
    AddGadgetColumn(1, 4, "Luftfeuchte %", 150)
    AddGadgetColumn(1, 5, "Luftdruck hPa", 150)
  EndIf
  
  If OpenDatabase(0, "host=192.168.0.32 port=3306 dbname=balkon", "user", "passwd" )
      
  Else
    MessageRequester("Fehler", "Verbindung zur Datenbank fehlgeschlagen "+DatabaseError())
  EndIf
  
  If DatabaseQuery(0, "SELECT * FROM messdaten ORDER BY ID DESC", #PB_Database_StaticCursor)
    i=1
  While NextDatabaseRow(0)   ; alle Einträge durchlaufen
    AddGadgetItem(1, -1, GetDatabaseString(0, 0) +Chr(10)+GetDatabaseString(0, 1)+Chr(10)+GetDatabaseString(0, 2)+Chr(10)+GetDatabaseString(0, 3)+Chr(10)+GetDatabaseString(0, 5)+Chr(10)+GetDatabaseString(0, 4))
    i=i+1     
  Wend

    FinishDatabaseQuery(0)
  Else
    MessageRequester("Fehler", "Kann die folgende Abfrage nicht ausführen: "+DatabaseError())
  EndIf   
  
    Repeat 
    Until WaitWindowEvent() = #PB_Event_CloseWindow 
Hab schon eine While-Schleife und ein Delay getestet - kein Erfolg.
Vielen Dank !!!

Re: MySQL funktioniert nur im Editor-Run

Verfasst: 29.03.2019 20:57
von ccode_new
Hallo legion!

Liegt den die "libmariadb.dll" im selben Ordner wie die auszuführende EXE-Datei ?

Re: MySQL funktioniert nur im Editor-Run

Verfasst: 29.03.2019 21:44
von legion
Yesssssss ! Super Tip, so hat es funktioniert !
Unter Linux ist es die libmariadb.so im compilers Verzeichnis !
Vielen lieben Dank !!!

Re: MySQL funktioniert nur im Editor-Run

Verfasst: 29.03.2019 22:10
von ccode_new
MySQL und MariaDB (ein OpenSource-Zweig von MySQL) sind leistungsfähige, servergestützte Datenbankmanager, die sehr große Datenbanken und hohe Parallelität unterstützen. PureBasic verwendet die OpenSource MariaDB-Bibliothek, um MySQL- und MariaDB-Datenbanken zu verbinden, die in kommerziellen Anwendungen ohne zusätzliche Lizenzen verwendet werden kann. Beim Versand Ihres PureBasic-Programms müssen Sie 'libmariadb.dll' (Windows), 'libmariadb.so' (Linux) bzw. 'libmariadb.dylib' (OS X) aus dem Verzeichnis 'PureBasic/Compilers' zu Ihrem Paket hinzufügen.

Es gibt keine zusätzlichen Treiber zu installieren - alles ist bereit, um einen MySQL oder MariaDB-Server zu verbinden. Weitere Informationen zu MariaDB finden Sie unter: https://mariadb.org/.

Eine MySQL- oder MariaDB-Datenbank muss mittels OpenDatabase() verbunden sein, bevor andere Datenbankfunktionen verwendet werden können. MySQL-spezifische Argumente können im Parameter 'DatenbankName$' von OpenDatabase() übergeben werden:
- host: Name des Hosts oder IP-Adresse, zu dem/der verbunden werden soll.
- port: Port-Nummer, zu der auf dem Server-Host verbunden werden soll.
- dbname: Der Datenbank-Name.

Re: MySQL funktioniert nur im Editor-Run

Verfasst: 29.03.2019 23:23
von legion
Ja, ja, man sollte öfter die Bedienungsanleitung lesen ! :bounce:
Zu viel Python schadet der Gesundheit :mrgreen:

Re: MySQL funktioniert nur im Editor-Run

Verfasst: 08.04.2019 12:58
von RSBasic
Etwas spät von mir, aber herzlich Willkommen zurück. :allright:

Re: MySQL funktioniert nur im Editor-Run

Verfasst: 08.04.2019 21:13
von legion
Freut mich sehr, dass du dich an mich noch erinnerst !
Lang lang ist es her aber das neue PB hat mich zu einen Wiedereinstieg bewogen.
Habe mich die letzten Jahre mit Python und Javascript herumgeschlagen.

Ist schön wieder bei euch zu sein !!!