Seite 1 von 1
libmysql.dll
Verfasst: 07.05.2010 20:10
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
Re: libmysql.dll
Verfasst: 07.05.2010 20:18
von HeX0R
Aspirant hat geschrieben:
Ich hoffe mir kann mal jemand die Augen öffnen
Klar:
Nimm Prototypes!
Re: libmysql.dll
Verfasst: 07.05.2010 20:21
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

Re: libmysql.dll
Verfasst: 08.05.2010 00:21
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
Re: libmysql.dll
Verfasst: 08.05.2010 08:59
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...
Re: libmysql.dll
Verfasst: 08.05.2010 10:11
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.