Hallo Pur'ler
Lange hab ich ohne Hilfe gearbeitet... aber jetzt stehe ich an.
Meine Suche ergab auch noch keine Hilfe.
Mein Problem:
Hab eine Kundenverwaltung (bin eigentlich Rauchfangkehrer (Schornsteinfeger) mit EDV-Wurzeln *g*) mit mySQL (bzw. seit kurzem MariaDB) und PureBasic unter OSX geschrieben.
Erst unter Windows - dann auf OSX - Früher mit ODBC - dann mit mysql.lib von
http://hex0rs.coderbu.de (danke - mindestens ein Bier steht *g*)
Und nun unter 5.7 sollte die DB-Abfragen wieder mit Boardmitteln funktionieren.
Erste Tests... verliefen mit Fehlern... Dann mal eine Test.pb geschrieben um die neue Sache zu lernen - insbesondere für den Übergang zur 5.7 um beide Versionen aktiv zu halten (falls weitere Probleme auftauchen sollten):
Code:
Debug #PB_Compiler_Version;
CompilerIf (#PB_Compiler_Version >= 570)
UseMySQLDatabase()
If OpenDatabase(db, "host=xxx.xxx.xxx.xxx port=yyyy dbname=zzzz", "user", "password")
Debug "Verbunden zu MySQL"
Else
Debug "Verbindung fehlgeschlagen: "+DatabaseError()
EndIf
CompilerElse
XIncludeFile "mysql.pbi"
UseMySQLDatabase()
If OpenDatabase(db, "host=xxx.xxx.xxx.xxx port=yyyy dbname=zzzz", "user", "password", #PB_Database_MySQL)
Debug "Verbunden zu MySQL"
Else
Debug "Verbindung fehlgeschlagen: "+DatabaseError()
EndIf
CompilerEndIf
Debug Str(#PB_Compiler_Version)
query$ = "SELECT `Brennstoff` FROM `Feuerstaetten2014` group by `Brennstoff` ORDER BY `Brennstoff` ASC"
If DatabaseQuery(db, query$)
While NextDatabaseRow(db)
Brennstoff$ = GetDatabaseString(db,0)
If (Brennstoff$ <> "")
Debug "original:"+Brennstoff$
; Meine Versuche Umlaute wieder lesen zu können:
Debug "URLencode UTF8:"+URLEncoder(Brennstoff$, #PB_UTF8)
Debug "URLencode ASCII:"+URLEncoder(Brennstoff$, #PB_Ascii)
*Text = UTF8(Brennstoff$)
Encoded$ = Base64Encoder(*Text, MemorySize(*Text))
*DecodedBuffer = AllocateMemory(1024)
Base64Decoder(Encoded$, *DecodedBuffer, 1024)
Debug " UTF8:"+ PeekS(*DecodedBuffer, -1, #PB_UTF8)
EndIf
Debug "--------------------------------------------"
Wend
Else
MessageRequester("Datenbankfehler","Startwerte "+Chr(13)+query$)
EndIf
CloseDatabase (db)
Meine, leider Fehlerhafte, Ausgabe ist folgende (Nur ein Ausschnitt):
Code:
570
Verbunden zu MySQL
570
--------------------------------------------
--------------------------------------------
original:HEL - Ofenhei
URLencode UTF8:HEL%20-%20Ofenhei
URLencode ASCII:HEL%20-%20Ofenhei
UTF8:HEL - Ofenhei
bzw. mit altem Compiler -> so wäre es korrekt...
Code:
561
Verbunden zu MySQL
561
--------------------------------------------
--------------------------------------------
original:HEL - Ofenheizöl
URLencode UTF8:HEL%20-%20Ofenheiz%C3%B6l
URLencode ASCII:HEL%20-%20Ofenheiz%F6l
UTF8:HEL - Ofenheizöl
Datenbank hatte ich standardmäßig auf Latin1 und habs auch auf UTF8 konvertiert (natürlich nur eine Kopie davon)
Erst dachte ich das die interne Verarbeitung Probleme macht... aber anscheinend kommen die Daten schon falsch bzw. vielleicht sogar abgeschnitten rüber...
Bitte um Hilfe... was kann ich noch tun, probieren oder ändern.
Hab ich die Lösung nur noch nicht richtig gesucht?
Grüße
Robert