libmysql.dll

Für allgemeine Fragen zur Programmierung mit PureBasic.
Aspirant
Beiträge: 101
Registriert: 19.10.2006 12:19

libmysql.dll

Beitrag von Aspirant »

Hallo,
in alten Programmen konnte ich mich so bei MYSQL anmelden.

jetzt habe ich PB 4.40 und es geht nicht mehr.
Lib ist noch immer die selbe und der MYSQL ist auch noch immer der selbe nur PB ist neu und ich habe kein Plan warum es jetzt nicht mehr geht.

Code: Alles auswählen

user.s = "*****"
pass.s = "****"
host.s = "10.10.1.199"
port.l = 3306
mydb.s = ""
#libmysql =1

If OpenLibrary(#libmysql,"libmysql.dll") 
  Result=CallFunction(#libmysql,"mysql_init",dbHnd)
  If Result
    dbHnd = Result
    If CallFunction(#libmysql,"mysql_real_connect",dbHnd, host, user, pass, mydb, port, "", 0) = 0 ;
      Else
        Repeat
          wevent =WaitWindowEvent(50)
        Until wevent=#PB_Event_CloseWindow
        Result.l=CallFunction(#libmysql,"mysql_free_result",*mysqlResult)
    EndIf
  EndIf
  Else ; Fehler Lib nicht geladen
    Debug "Fehler Lib nicht geladen"
EndIf
Ich hoffe mir kann mal jemand die Augen öffnen
Ich würde mich ja gerne geistig mit dir duellieren, aber wie ich sehe bist du unbewaffnet.
================================
WinXP Pro, W2k3, Eisfair
-----------------------------
PB 4.40 auf WinXPpro kauf
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: libmysql.dll

Beitrag von HeX0R »

Aspirant hat geschrieben: Ich hoffe mir kann mal jemand die Augen öffnen
Klar:
Nimm Prototypes!
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: libmysql.dll

Beitrag von ts-soft »

>> Ich hoffe mir kann mal jemand die Augen öffnen
Ich auch, dann hättest Du anhand der Fehlermeldung des Compilers die Lösung gefunden.
Des weiteren schaut man in solchen Fällen in die Historie der Hilfe um zu schauen: Was hat sich geändert.

Wärst Du schon beim Wechsel auf PB 4.0 dem Rat gefolgt: Nutze Prototypes statt CallFunction, CallFunctionFast
usw., wäre das Problem nie aufgetaucht.

Ich hoffe Deine Augen sind jetzt offen <)
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
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: libmysql.dll

Beitrag von Andreas21 »

Du must vor Strings ein @ setzen.

Code: Alles auswählen

user.s = "*****"
pass.s = "****"
host.s = "10.10.1.199"
port.l = 3306
mydb.s = ""
#libmysql =1

If OpenLibrary(#libmysql,"libmysql.dll") 
  Result=CallFunction(#libmysql,"mysql_init",dbHnd)
  If Result
    dbHnd = Result
    If CallFunction(#libmysql,"mysql_real_connect",dbHnd, @host, @user, @pass, @mydb, port, "", 0) = 0 ;
      Else
        Repeat
          wevent =WaitWindowEvent(50)
        Until wevent=#PB_Event_CloseWindow
        Result.l=CallFunction(#libmysql,"mysql_free_result",*mysqlResult)
    EndIf
  EndIf
  Else ; Fehler Lib nicht geladen
    Debug "Fehler Lib nicht geladen"
EndIf
Mit Prototype

Code: Alles auswählen

Structure MYSQL
EndStructure

user.s = "*****"
pass.s = "****"
host.s = "10.10.1.199"
port.l = 3306
mydb.s = ""
#libmysql =1

Prototype.l Protomysql_init        (Flags.l = 0)
Prototype.l Protomysql_real_connect(*MYSQL.MYSQL, host.s, user.s, pass.s, db.s = "", port.l = 3306, unix_socket.l = 0, client_flag.l = 32)
Prototype.l Protomysql_free_result (*mysqlResult)

If OpenLibrary(#libmysql,"libmysql.dll")
  mysql_init        .Protomysql_init         = GetFunction(#libmysql, "mysql_init")
  mysql_real_connect.Protomysql_real_connect = GetFunction(#libmysql, "mysql_real_connect")
  mysql_free_result .Protomysql_free_result  = GetFunction(#libmysql, "mysql_free_result")
    
  Result = mysql_init(dbHnd)
  If Result
    dbHnd = Result
    If mysql_real_connect(dbHnd, host, user, pass, mydb, port, "", 0) = 0 ;
      Else
        Repeat
          wevent =WaitWindowEvent(50)
        Until wevent=#PB_Event_CloseWindow
        Result.l=mysql_free_result(*mysqlResult)
    EndIf
  EndIf
  Else ; Fehler Lib nicht geladen
    Debug "Fehler Lib nicht geladen"
EndIf
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: libmysql.dll

Beitrag von HeX0R »

Hört doch endlich mal auf, immer diese Fix- und Fertig Lösungen anzubieten.

Ist ja schön, wenn jeder so hilfsbereit ist, aber der Lerneffekt bleibt hierbei meist auf der Strecke.

Nichts bleibt besser im Gedächtnis, als selbst erarbeitetes...
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: libmysql.dll

Beitrag von Andreas21 »

Naja Fix und Fertig würd ich das nicht nennen. Es soll nur ein beispiel sein das zeigt wie man es anwendet.

Da fehlen ja auch noch diverse Funktionen um damit wirklich was sinvoles machen zu können.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Antworten