Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi unter delphi6 mit ado nicht richtig gespeichern (https://www.delphipraxis.net/68152-unter-delphi6-mit-ado-nicht-richtig-gespeichern.html)

k_ocel 25. Apr 2006 14:05

Datenbank: mysql • Version: 5.0 • Zugriff über: ado

unter delphi6 mit ado nicht richtig gespeichern
 
hi.
ich habe ein problem.
ich versuche unter delhi 6 mit adoquery oder adocommand oder adoconnection mit einer insert befehl sondern zeichen in der datenbank speichern.(äöüß&%$§).
aber er nimmt immer ascii zeichen(tausch).
wie könnte ich in der datenbank mit ado insert befehle diese sonder zeichen speichern.
code:

Delphi-Quellcode:
var sqlscript:string;
begin
    try
       st := 1;
       sql :=sqlBody+sqlValue+sqlSet+sqlWhere;
       memo1.Lines.Add(sql);
       edtdatenbank.Text:='artikel';
       getconnection(edtdatenbank.Text);
       status := 0;
       ADOConnection1.ConnectionString:=connstring;
       ADOConnection1.LoginPrompt    := false;
       ADOConnection1.Open();
       sqlscript:='insert into dummy(dummy) values (''@/?ßäöü%$§€'');';
       ADOConnection1.Execute(sqlscript);
//       ADOQuery1.Connection  := ADOConnection1;
//       ADOQuery1.SQL.Clear();
//       ADOQuery1.SQL.Add(sqlscript);
//       ADOQuery1.ExecSQL();
//       ADOQuery1.SQL.Clear();
//       sqlscript:='insert into dummy(dummy) values (''@/?ßäöü%$§€'');';
//       ADOQuery1.SQL.Add(sqlscript);
//       ADOQuery1.ExecSQL();
{//       SQLBefehl(sqlscript,'',conn);
//       SQLBefehl(sqlscript,'',conn);
       //SQLBefehl(sqlBody+sqlValue+sqlSet+sqlWhere,'',conn)

    finally
      if assigned(conn) then
         conn.close;
      conn := NIL;
    end;
}
    finally
       ADOConnection1.Close();
       st  := 0;
    end;
ergebnis
Delphi-Quellcode:
mysql> select * from artikel.dummy;
+---------+-------------+
| iddummy | dummy      |
+---------+-------------+
| 12      | @/?▀õ÷³%$ºÇ |
+---------+-------------+
1 row in set (0.00 sec)
weiss jemand?
vielen dank

Gollum 25. Apr 2006 14:36

Re: unter delphi6 mit ado nicht richtig gespeichern
 
Hallo,

mit welcher Collation hast Du Deine MySQL-Tabellen konfiguriert?
Mit latin_german1_ci oder utf8 müsste es normalerweise funktionieren.

k_ocel 25. Apr 2006 14:54

Re: unter delphi6 mit ado nicht richtig gespeichern
 
hi gollum
danke dein antwort.
das habe ich beides versucht das funktioniert nicht.
ich habe
SQL-Code:
alter DATABASE artikel CHARACTER SET latin1 COLLATE latin1_german1_ci;
dann

SQL-Code:
alter DATABASE artikel CHARACTER SET utf8 COLLATE utf8_general_ci;
versucht.
auch tabelle character set geändert.
nutzt nichts...
hast du noch mehr gedanke.
vielen dank...

marabu 25. Apr 2006 16:48

Re: unter delphi6 mit ado nicht richtig gespeichern
 
Herzlich willkommen in der Delphi-PRAXiS, Kemal.

Welchen Tabellentyp verwendest du? Hast du bei deinen Tests immer eine neue Tabelle angelegt oder waren schon Daten drinnen? Im Handbuch beschäftigt sich das Kapitel 5.11 mit den Voraussetzungen und Möglichkeiten der Lokalisierung deiner Datenbank. Darin ist auch beschrieben, wie du vorgehen musst, wenn du MYISAM Tabellen nachträglich umstellen willst.

Freundliche Grüße vom marabu

Bernhard Geyer 25. Apr 2006 21:20

Re: unter delphi6 mit ado nicht richtig gespeichern
 
Und ich empfehle dir gleich ADO (und ich vermute auch) MyODBC wegzuschmeißen und den nativen Zugriff mit MyDAC zu nehmen. Ebenfalls sollste Du deine Abfragen auf parametrisierte Abfragen umstellen. Bei ADO + MS-SQL gibt es hier z.B. Probleme mit Unicode und ich weiß nicht ob das ein MS-SQL oder ein ADO-Problem ist. Mit parametrisierten bist Du auch gleich sicher gegenüber SQL-Injection.

k_ocel 26. Apr 2006 07:49

Re: unter delphi6 mit ado nicht richtig gespeichern
 
hi leute.
zu erst marabu.
danke für deine antwort.
update oder insert beides muss sein.

Zitat:

Im Handbuch beschäftigt sich das Kapitel 5.11
kannst du mir der link schreiben.

......
vielen dank Bernhard auch.
ich schaue mal.
ich weiss es nicht.
bis dann leute.

marabu 26. Apr 2006 08:39

Re: unter delphi6 mit ado nicht richtig gespeichern
 
Hier der Link: klick

marabu

k_ocel 26. Apr 2006 14:12

Re: unter delphi6 mit ado nicht richtig gespeichern
 
hi jungs.
nochmal
ich habe noch eine frage?
in mysql....
was bedeutung latin1 und was macht collation latin1_swedish_ci oder latin1_german1_ci oder latin1_german2_ci
und was bedeutung utf8 und welche collation sollte nehmen (utf8_unicode_ci oder utf8_general_ci)...
und was bedeutung unicode...
vielen dank

Bernhard Geyer 26. Apr 2006 19:45

Re: unter delphi6 mit ado nicht richtig gespeichern
 
Zitat:

Zitat von k_ocel
und was bedeutung unicode...

Unicode


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 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