AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL-Direct & Zeichensatz

MySQL-Direct & Zeichensatz

Ein Thema von unclememyEX · begonnen am 21. Feb 2009 · letzter Beitrag vom 24. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2   
unclememyEX

Registriert seit: 5. Apr 2008
10 Beiträge
 
#1

MySQL-Direct & Zeichensatz

  Alt 21. Feb 2009, 23:48
Datenbank: MySQL • Version: 5 • Zugriff über: ODBC connector
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
  Mit Zitat antworten Zitat
unclememyEX

Registriert seit: 5. Apr 2008
10 Beiträge
 
#2

Re: MySQL-Direct & Zeichensatz

  Alt 22. Feb 2009, 02:20
Jetzt Funktioniert ODBC über Netzwerk. Ich habe nicht anders als Gestern gemacht. Aber funktioniert's.

Meine frage ist immer noch da.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: MySQL-Direct & Zeichensatz

  Alt 22. Feb 2009, 09:03
Zitat von unclememyEX:
Ich benutze Delphi 2006 Express
Was ist den das
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
unclememyEX

Registriert seit: 5. Apr 2008
10 Beiträge
 
#4

Re: MySQL-Direct & Zeichensatz

  Alt 23. Feb 2009, 09:25
Zitat von Bernhard Geyer:
Zitat von unclememyEX:
Ich benutze Delphi 2006 Express
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.
Morgen;

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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: MySQL-Direct & Zeichensatz

  Alt 23. Feb 2009, 09:28
Die relevanten Variablen heißen:

character_set_client
character_set_connection
character_set_results


Wie ist der Wert dafür?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
unclememyEX

Registriert seit: 5. Apr 2008
10 Beiträge
 
#6

Re: MySQL-Direct & Zeichensatz

  Alt 23. Feb 2009, 15:29
Zitat von Bernhard Geyer:
Die relevanten Variablen heißen:

character_set_client
character_set_connection
character_set_results


Wie ist der Wert dafür?
die Werte sind :

character_set_client = utf8
character_set_connection = utf8
character_set_results = utf8
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: MySQL-Direct & Zeichensatz

  Alt 23. Feb 2009, 16:18
Was kommt bei den Zeichen "ı,ş,ğ,ö,ç,Ğ,İ.." im Client an?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
unclememyEX

Registriert seit: 5. Apr 2008
10 Beiträge
 
#8

Re: MySQL-Direct & Zeichensatz

  Alt 23. Feb 2009, 20:25
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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: MySQL-Direct & Zeichensatz

  Alt 23. Feb 2009, 21:49
Und was kommt jetzt an? Ist es evtl. nur die UTF8-Form der Zeichen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
unclememyEX

Registriert seit: 5. Apr 2008
10 Beiträge
 
#10

Re: MySQL-Direct & Zeichensatz

  Alt 24. Feb 2009, 01:27
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;
......
Miniaturansicht angehängter Grafiken
mysql-direct_140.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz