![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: ODBC connector
MySQL-Direct & Zeichensatz
Hallo, guten Morgen,
Ich benutze Delphi 2006 Express, MySQL 5x über ODBC connector. Ich konnte leider mit ODBC connector über Netzverk keine verbindung herstellen. Aber mit 'localhost' leuft alles wie erwartet. Als ich aber MySQL-Direct in mein Project nahm, musste ich feststellen, dass die folgenden Zeichen (ı,ş,ğ,ö,ç,Ğ,İ...) nicht richtig dargestellt werden. Kann jemand mir helfen bitte. Danke voraus |
Re: MySQL-Direct & Zeichensatz
Jetzt Funktioniert ODBC über Netzwerk. Ich habe nicht anders als Gestern gemacht. Aber funktioniert's.
Meine frage ist immer noch da. |
Re: MySQL-Direct & Zeichensatz
Zitat:
Für MySQL würde ich direkte Zugriffskomponenten wie von DevArt oder ZEOS nehmen und den umweg über ODBC vermeiden. Hast du ein Closed Source Projekt bleibt dir zur vermeidung von Lizenzkosten nur die Kompos von DevArt. Kontrollier mal mit dem SQL-Statement "SHOW VARIABLES" ob alle Connection-Parameter auf UTF8 stehen. Sollten sie auf irgendwas der Art LATIN1 stehen so mußt du sie mit "SET VARIABLE xxx=??UTF8?? umsetzen und dann in deinem Programm dafür sorgen das die als UTF8 ankommenden Daten nach String/Wide/Unicodestring gewandelt werden. Die Kompos von DevArts (evtl. auch ZEOS) machen das alles Transparent. |
Re: MySQL-Direct & Zeichensatz
Zitat:
1. unter Variables und Global_variables taucht nicht weder charset, default_charset noch connection_string. 2. mit Admin.Tool controlliere (Def. Char Set = utf8 und die Tabellen auch); 3. In der 'Inline Help' gibts keine Information darüber. 4. mit dem Befehl (mysql> select * from petvet.petsahip;) erhalte ich die Daten nicht in utf8 Format aufgelistet. |
Re: MySQL-Direct & Zeichensatz
Die relevanten Variablen heißen:
character_set_client character_set_connection character_set_results Wie ist der Wert dafür? |
Re: MySQL-Direct & Zeichensatz
Zitat:
character_set_client = utf8 character_set_connection = utf8 character_set_results = utf8 |
Re: MySQL-Direct & Zeichensatz
Was kommt bei den Zeichen "ı,ş,ğ,ö,ç,Ğ,İ.." im Client an?
|
Re: MySQL-Direct & Zeichensatz
Ich bin in der Türkei. Von dort nehme ich bei diesem Forum teil.
Deshalb die Daten, die in die Datenbank aufgenommen werden, enthalten genannte Zeichen. zBsp. : Name : Aydın Güzel Adresse : Boğaziçi çıkmazı no 12 ... usw. |
Re: MySQL-Direct & Zeichensatz
Und was kommt jetzt an? Ist es evtl. nur die UTF8-Form der Zeichen?
|
Re: MySQL-Direct & Zeichensatz
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn Sie das Bild sehen unterschiedliche Felder mit unterschiedlichen Zeichensatzen.
Code sehen ganz formal aus : .....
Delphi-Quellcode:
q := 'SELECT id, PETUSER, PASTA FROM PetPers';
FResult := FMysql.query(q, true, ex); if assigned(FResult) then begin ShowMessage('Query: OK - Ergebnis gespeichert'); // DataSource2.DataSet := FResult(rtStored); end else if ex then ShowMessage('Query: OK - ausgeführt') else ShowMessage('Query fehlgeschlagen: '+FMysql.LastError); end;
Delphi-Quellcode:
......
.............................
// Stringgrid2 füllen mit Daten.. procedure TForm1.BitBtn3Click(Sender: TObject); var i, j: integer; af: TMysql_FieldDef; cr: integer; begin if assigned(FResult) then begin if FResult.ResultType=rtStored then begin cr := FResult.RecNo; StringGrid2.RowCount := FResult.RowsCount+1; StringGrid2.ColCount := FResult.FieldsCount+1; for i:=0 to FResult.FieldsCount-1 do begin af := FResult.FieldDef(i)^; StringGrid2.cells[i+1,0] := af.Name; end; FResult.First; for i:=0 to FResult.RowsCount-1 do begin if FResult.RecNo=cr then StringGrid2.Cells[0,i+1] := '*' else StringGrid2.Cells[0,i+1] := ''; for j:=0 to FResult.FieldsCount-1 do StringGrid2.Cells[j+1,i+1] := FResult.FieldValue(j); FResult.Next; end; FResult.RecNo := cr; end else begin StringGrid2.RowCount := 2; StringGrid2.ColCount := FResult.FieldsCount+1; for i:=0 to FResult.FieldsCount-1 do begin af := FResult.FieldDef(i)^; StringGrid2.cells[i+1,0] := af.Name; end; for j:=0 to FResult.FieldsCount-1 do StringGrid2.Cells[j+1,1] := FResult.FieldValue(j); end; end; end; -------------- Connection-Teil FMysql.Host := 'globi'; aa := Button10.Caption ; // FMysql.Host := lowerCase(aa); // Form1.Caption := lowerCase(aa); FMysql.port := 3306; FMysql.user :='root'; FMysql.password := '080899'; FMysql.UnixSocket := ''; FMysql.Db := 'PetVet'; // Datenbank auf dem Server FMysql.UseNamedPipe := false; FMysql.UseSSL := false; FMysql.Compress := false; FMysql.TrySockets := false; if FMysql.Connect then begin Shape3.Brush.Color := clLime; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 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-2025 by Thomas Breitkreuz