Entwickler-Ecke

Datenbanken - MySQL und Characterset ?


kraz - Mo 03.11.03 18:54
Titel: MySQL und Characterset ?
Hallo

Ich probiere grade ein wenig mit mysql herum.

Das ausführen einer query mit ZEOS klappt ganz gut, bis auf dieses eine Problem.

Wenn ich einen Datensatz speichere und ihn dann wieder ausgebe, erscheinen Sonderzeichen in dem Text.

Hier gibt's nen Screenshot: http://www.kraz-ag.de/screenshot.gif

Was mache ich falsch ? habe auch schon verschiedene charsets in der my.ini eingestellt und dadurch wird es auch nicht besser
(vorher waren es ||<- 2 blöcke - jetzt mit anderem zeichensatz sind es quadrate(screeshot))...
die zeichen kann ich auch mit StringReplace entfernen, wenn ich #10 und #13 durch nichts ersetze ... aber nach dem speichern sind die zeichen direkt wieder da ...

hier noch n bischen code ... vielleicht hilft's ...

Delphi-Quelltext
1:
2:
3:
4:
5:
////////////////////updaten:
mmSql.Text := 'update Kontakte set Firma="'+Edit1.Text+'" where KdNr="'+Label3.Caption+'"';

///////////////////Select und dann ins Edit Feld.
Edit1.text := qrMain.Fields.Fields[1].AsString;

das ist doch sicher ein ganz doofer kleiner fehler ...
aber ich finde die Lösung nicht ... bin am verzweifeln ...

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.


barfuesser - Di 04.11.03 09:14

Vielleicht solltest Du die Sonderzeichen vorm Abspeichern in der DABA ersetzen und beim Laden wieder zurückwandeln.

barfuesser


kraz - Di 04.11.03 10:53
Titel: Lösung gefunden ...
Hi,

deinen Vorschlag hatte ich auch schon probiert. aber das ist ja keine saubere löung, weil die daten in der db dann nicht 100% sauber sind ...

Das Problem war, dass ich die querys erst in ein memo gepackt habe, wobei das memo nur ca. 10 zeichen breit war. Das hat mir dann automatisch zeilenumbrücke mit in die values gepackt ...

Zum glück lernt man aus fehlern ;-))

Greetz


Udontknow - Di 04.11.03 11:41

Ahem, ein Memo fügt keine Zeilenumrüche in den Text ein. Es zeigt den Text einfach nur so an. Das kannst du auch schnell nachvollziehen, wenn du das Memo mal per Align=alClient an das Formular heftest und das Formular skalierst. Je nach Grösse wird dann an unterschiedlichen Stellen umgebrochen. Der Text bleibt jedoch der gleiche.

Cu,
Udontknow