![]() |
Datenbank: MYSQL • Version: 5.x • Zugriff über: mysql
Mysql und D2009 - connection funktioniert nicht
Salvete,
doch noch ein dicker Hund! ob
Delphi-Quellcode:
oder
mysql_real_connect(_myCon, pchar(mysqlip), pchar(MySQLuser), pchar(MySQLpass), pchar(MySQLdb), mysqlport, nil, 0)
Delphi-Quellcode:
gibt NIL zurück und als error nur wirre Hyroglyphen.
mysql_real_connect(_myCon, PwideChar(mysqlip), PwideChar(MySQLuser), PwideChar(MySQLpass), PwideChar(MySQLdb), mysqlport, nil, 0)
Hat jemand einen Lösungsvorschlag? Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Wieso PWideChar und nicht PAnsiChar?
|
Re: Mysql und D2009 - connection funktioniert nicht
Ist ja 2mal das Gleiche Pcahr entspricht PWideChar unter D2009
|
Re: Mysql und D2009 - connection funktioniert nicht
Zitat:
Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Hat dann aber nichts mit dem Verbindungsaufbau zu tun
|
Re: Mysql und D2009 - connection funktioniert nicht
Zitat:
Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Salvete,
ich bin da wohl nicht er Einzigste mit diesem Problem: ![]() irgendwas ist an der Parameterübermittlung zu mysql.pas nun anders. In irgendeinem forum ( ![]() Ich habe da ein echtes Problem! Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Hier mal ein Link zu dem C-Quellcode. =>
![]() Vielleicht können die richtigen Cracks hier damit was anfangen? Dieser Fehler hat irgendwas mit den neuen Datenstrukturen bei Delphi, was Ansi etc. betrifft zu tun. Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Delphi verwendet wie Windows UTF-16 für Unicod, MySQL UTF-8. Hierbei sind die Zeichen variable breit, bei UTF-16 immer 16Bit
|
Re: Mysql und D2009 - connection funktioniert nicht
Zitat:
Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
utf8encode() sollte dir helfen
|
Re: Mysql und D2009 - connection funktioniert nicht
Zitat:
in die mysql.pas oder vorher wo ich den Aufruf in die MYSQL.PAS mache? Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Versuch es mal im Aufruf
|
Re: Mysql und D2009 - connection funktioniert nicht
Zitat:
das scheint zu klappen! Zuminstens schon einmal im Connect. Vielen Dank für die Hilfe Jetzt darf ich ne RiesenApp durchgehen um alles durchzuforsten *iggitt* Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Zu früh gefreut :pale:
die Aufrufe mysql_query und mysql_store_result funktionieren so zumindest einmal nicht.... so ein Dreck Ich hab schon alle möglichen und unmöglichen Kombinationen durch. Korrektur: Ich komme der Sache näher. var sstring : rawbytestring; begin .... mysql_query(_dbserver, pchar(sstring)); Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Zitat:
![]() |
Re: Mysql und D2009 - connection funktioniert nicht
Jetzt habe ich den Kasten soweit, das er zumindest mal SQL-Kommandos akzeptiert und ich das durch z.B. reccount nachvollziehen kann.
Allerdings gibt er mir bei der Ausgabe von Datenfeldern nur Blödsinn raus.
Delphi-Quellcode:
Gruss
if reccount <> 0 then begin
such_bar.Max := reccount; such_bar.Refresh; showbutton(inttostr(reccount)+' Treffer'); for i := 0 to RecCount -1 do begin => bis hierhin kann ich es nachvollziehen und es stimmt such_bar.StepIt; such_bar.Refresh; _myRow := mysql_fetch_row(_MyRes); => hier muss der Fehler passieren. ausgabeliste.addrow(); ausgabeliste.cells[0,i] := _MyRow[0]; //Datensatz-ID ausgabeliste.cell[1,i].AsString := _MyRow[1]; // Anlagedatum ausgabeliste.cells[2,i] := _myrow[2]; // Vermittler ausgabeliste.cells[3,i] := get_vermittler(_myrow[2]); // Vermittler EL |
Re: Mysql und D2009 - connection funktioniert nicht
Was für Datenfelder?
|
Re: Mysql und D2009 - connection funktioniert nicht
Zitat:
Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Integer hat ja eigentlich nichts mit Unicode zu tun :gruebel:
Zeig mal den Code zum kompletten Vorgang |
Re: Mysql und D2009 - connection funktioniert nicht
Zitat:
Delphi-Quellcode:
Gruss
function TAktenManager.fillgrid(sstring : string; neu : boolean) : boolean;
var _myRes: PMySQL_Res; //hier wird der gesamte Ergebnissatz gespeichert _myRow: PMySQL_Row; //enthält den aktuellen Datensatz reccount,i : integer; _fremdmittel, _endpreis : integer; _string : rawbytestring; begin _fremdmittel := 0; _endpreis := 0; v_last_query := sstring; edt_sql_suchkommando.Text := sstring; result := true; AntiFreeze.Active := true; ausgabeliste.Visible := false; // such_alarm.visible := true; such_bar.Visible := true; _string := utf8encode(sstring); try db_label.caption := 'Datenbankzugriff'; db_label.Repaint; mysql_query(v_fddcon, pchar(_string)); db_label.caption := 'Datenauswertung'; db_label.Repaint; _myRes := mysql_store_result(v_fddcon); db_label.caption := 'Daten einlesen'; db_label.Repaint; ausgabeliste.ClearRows; if _myRes <> nil then begin reccount := mysql_num_rows(_myRes); if reccount <> 0 then begin such_bar.Max := reccount; such_bar.Refresh; showbutton(inttostr(reccount)+' Treffer'); for i := 0 to RecCount -1 do begin such_bar.StepIt; such_bar.Refresh; _myRow := mysql_fetch_row(_MyRes); ausgabeliste.addrow(); ausgabeliste.cells[0,i] := _MyRow[0]; //Datensatz-ID ausgabeliste.cell[1,i].AsString := _MyRow[1]; // Anlagedatum ausgabeliste.cells[2,i] := _myrow[2]; // Vermittler ausgabeliste.cells[3,i] := get_vermittler(_myrow[2]); // Vermittler ausgabeliste.cells[4,i] := _myrow[3]; // Mitarbeiter ausgabeliste.cells[5,i] := _myrow[4]; // Dossier ausgabeliste.cells[6,i] := _myrow[5]; // Name ausgabeliste.cells[7,i] := _myrow[6]; // Vorname ausgabeliste.cells[8,i] := _myrow[7]; // Bank ausgabeliste.cells[9,i] := _myrow[8]; // Darlehensnummer ausgabeliste.cells[10,i] := _myrow[9]; // PLZ_Objekt ausgabeliste.cells[11,i] := _myrow[10]; // ORT_Objekt ausgabeliste.cells[12,i] := _myrow[11]; // PLZ ausgabeliste.cells[13,i] := _myrow[12]; // Ort ausgabeliste.cells[14,i] := _myrow[13]; // fremdmittelinclkosten ausgabeliste.cells[15,i] := _myrow[14]; // endpreis _fremdmittel := _fremdmittel + strtoint(_myrow[13]); _endpreis := _endpreis + strtoint(_myrow[14]); end; end else such_meldung.caption := 'Keine Datensätze gefunden!'; mysql_free_result(_myRes); //Ergebniss end else such_meldung.caption := 'Fehler beim Datenzugriff! SQL-Fehlermeldung: ' + mysql_error(v_fddcon); except end; edt_fremdmittel.Value := _fremdmittel; edt_endsumme.Value := _endpreis; such_bar.Visible := false; AntiFreeze.Active := false; ausgabeliste.Visible := true; db_label.caption := 'Datenbank online'; db_label.Repaint; end; EL |
Re: Mysql und D2009 - connection funktioniert nicht
Die Felder werden auch UTF8 sein.
Versuch es mal mit Utf8decode() |
Re: Mysql und D2009 - connection funktioniert nicht
Zitat:
Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Die Ergebnisse sollen Pchar (also Zeiger) sein. Wie komm ich denn da dran, wenn nicht so wie bisher?
Gruss EL |
Re: Mysql und D2009 - connection funktioniert nicht
Unter Delphi bis einschließlich 2007 waren PChars gleichbedeutend mit PAnsiChars. Seit Delphi 2009 sind das aber PWideChars (äquivalent gilt das auch für Chars und Strings). Wenn Du also Units verwendest, die unter einem Delphi < 2009 geschrieben wurden, musst Du PChar durch PAnsiChar usw. ersetzen, dann hast Du evtl. eine Chance, das alte Verhalten wiederherzustellen.
|
Re: Mysql und D2009 - connection funktioniert nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Somit funktioniert alles wieder (mit ein paar Änderungen) :hello: Falls da noch Fehler auftauchen, bitte Bescheid geben. Gruss EL |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz