![]() |
Datenbank: mysql • Zugriff über: Zeoslib
Zeoslib zeichen begrenzung?
hiho,
so ich arbeite im momet mit der Zeoslib,nun hab ich ein problem... Wenn ich ein Richtedt in einen String umwandle und in die Datebank schreiben will,bekomme ich eine fehlermeldung. ![]() Dies benutzte ich um den String zuerstellen:
Delphi-Quellcode:
und so wird "geupdatet"
function GetRTFText(ARichEdit: TRichedit): ansistring;
var ss: TStringStream; emptystr: string; begin emptystr := ''; ss := TStringStream.Create(emptystr); try ARichEdit.PlainText := False; ARichEdit.Lines.SaveToStream(ss); Result := ss.DataString; finally ss.Free end; end;
Delphi-Quellcode:
Ich vermute, dass die Zeoslib nur mit Strings arbeitet(255 zeichen),ich hab schon einwenig rum probiert aber nix hat funktioniert.
Mainwindow.Sql_Query.SQL.Text:='UPDATE `orders` Set `Order_Description`='''+GetRTFText(richedit1)+''' '+
'WHERE `Order_Id`= `1`'';'; Mainwindow.Sql_Query.ExecSql; |
Re: Zeoslib zeichen begrenzung?
Versuch es mal mit (SQL-)Parametern
|
Re: Zeoslib zeichen begrenzung?
Es liegt daran, dass der SQL.Text nur 255 Zeichen lang sein darf.
Du kannst aber mit Parametern arbeiten.
Delphi-Quellcode:
Ungestest, weil aus dem Kopf geschrieben.
MeineQuery.SQL.Txt := 'SELECT * FROM MeineTabell WHERE MeineSpalte = :Spaltenwert';
MeineQuery.ParamByName('Spaltenwert').AsString := RichEdit.Text; |
Re: Zeoslib zeichen begrenzung?
Moin, moin,
Zitat:
Habe einige Programme mit Suchfeld, was generisch in ein 'Where-Statement' eingefügt wird. Habe eben mal 500 Zeichen da reinkopiert und das läuft wie gehabt stabil. Fazit: das liegt wo anders und wird auch mit Paramentern nicht gehen. Tippe mal, dass sich im RTF-Syntax auch einige Hochkommas befinden und der Zeos-SQL-Interpreter trivial kein RTF-Versteht (Formatiertes SQL in rot grün blau und Fettdruck). Das fehlerhafte RTF-SQL findet sich auch in der Fehlermeldung. Ergo: RTF kann man nicht einfach in ein SQL-Statement einfügen, sondern es muß vorher konvertiert werden, zum Beispiel mit Base64 oder in einen kleinen Stream, wies es das Richedit macht. Viele Grüße // Martin |
Re: Zeoslib zeichen begrenzung?
Es sollte aber mit Parametern gehen
|
Re: Zeoslib zeichen begrenzung?
Erstmal danke für eure Antworten.
Ich habe den String jetzt mit base64 verschlüsselt, aber ich bekomme jetzt die fehler meldung: Syntax blabla error near "" @RavenIV ich will noch nix aus der datenbank lesen, ich will erstmal nur schreiben... Mfg Gr0by |
Re: Zeoslib zeichen begrenzung?
Welchen Datentyp hat das Feld "Order_Description"?
VarChar-Felder können bei MySQL nur 255 Zeichen groß sein. Erst neuere MySQL-Versionen heben diese Grenze auf einen höheren Wert. Siehe auch ![]() |
Re: Zeoslib zeichen begrenzung?
Zitat:
|
Re: Zeoslib zeichen begrenzung?
Hallo GrOby,
Dein Problem steckt in der RTF-Datei: {\fonttbl{\f0\fnil \fch' Da willst Du wohl einen Font verwenden dessen erstes Zeichen ein Sonderzeichen ist. Auf jeden Fall ist wohl ein Hochkomma im RTF-Text vorhanden, und das bringt das SQL aus dem Tritt. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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