AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zeoslib zeichen begrenzung?
Thema durchsuchen
Ansicht
Themen-Optionen

Zeoslib zeichen begrenzung?

Ein Thema von Gr0by · begonnen am 18. Jun 2008 · letzter Beitrag vom 3. Jul 2008
Antwort Antwort
Gr0by

Registriert seit: 26. Mai 2008
4 Beiträge
 
#1

Zeoslib zeichen begrenzung?

  Alt 18. Jun 2008, 21:21
Datenbank: mysql • Zugriff über: Zeoslib
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.
Bild

Dies benutzte ich um den String zuerstellen:
Delphi-Quellcode:
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;
und so wird "geupdatet"

Delphi-Quellcode:
Mainwindow.Sql_Query.SQL.Text:='UPDATE `orders` Set `Order_Description`='''+GetRTFText(richedit1)+''' '+
  'WHERE `Order_Id`= `1`'';';
    Mainwindow.Sql_Query.ExecSql;
Ich vermute, dass die Zeoslib nur mit Strings arbeitet(255 zeichen),ich hab schon einwenig rum probiert aber nix hat funktioniert.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Zeoslib zeichen begrenzung?

  Alt 18. Jun 2008, 21:27
Versuch es mal mit (SQL-)Parametern
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Zeoslib zeichen begrenzung?

  Alt 19. Jun 2008, 09:39
Es liegt daran, dass der SQL.Text nur 255 Zeichen lang sein darf.
Du kannst aber mit Parametern arbeiten.

Delphi-Quellcode:
MeineQuery.SQL.Txt := 'SELECT * FROM MeineTabell WHERE MeineSpalte = :Spaltenwert';
MeineQuery.ParamByName('Spaltenwert').AsString := RichEdit.Text;
Ungestest, weil aus dem Kopf geschrieben.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#4

Re: Zeoslib zeichen begrenzung?

  Alt 19. Jun 2008, 10:15
Moin, moin,

Zitat von RavenIV:
Es liegt daran, dass der SQL.Text nur 255 Zeichen lang sein darf..
ist eine wüste Behauptung 8) Also ich empfehle erst mal einen Tripp zur Cappuccinomaschine....


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
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Zeoslib zeichen begrenzung?

  Alt 19. Jun 2008, 10:18
Es sollte aber mit Parametern gehen
Markus Kinzler
  Mit Zitat antworten Zitat
Gr0by

Registriert seit: 26. Mai 2008
4 Beiträge
 
#6

Re: Zeoslib zeichen begrenzung?

  Alt 24. Jun 2008, 17:14
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Zeoslib zeichen begrenzung?

  Alt 24. Jun 2008, 17:25
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 Überblick über String-Typen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Gr0by

Registriert seit: 26. Mai 2008
4 Beiträge
 
#8

Re: Zeoslib zeichen begrenzung?

  Alt 26. Jun 2008, 19:44
Zitat von Bernhard Geyer:
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 Überblick über String-Typen
Das Feld ist vom Typ Text (~65k zeichen).Aber ich denke er Fehler ist im Quelltext...
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Zeoslib zeichen begrenzung?

  Alt 3. Jul 2008, 15:42
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
  Mit Zitat antworten Zitat
Antwort Antwort


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:36 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