Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu lang? (https://www.delphipraxis.net/26558-zugriff-auf-mysql-mit-zeos-komponenten-sql-befehl-zu-lang.html)

mirko2000 25. Jul 2004 12:56


Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu lang?
 
Hallo.

Ich greife mit den Zeos-Komponenten auf eine MySQL-Datenbank zu. Bei einem etwas längerem String kommt jetzt die Fehlermeldung:

Code:
Strin-Literale könne maximal 255 Elemente besitzen
Jetzt ist nur die Frage, wie kann ich einen SQL-Befehl ausführen, der länger als 255 Zeichen ist?

Bernhard Geyer 25. Jul 2004 13:27

Re: Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu l
 
Welchen SQL-Befehl schickst Du genau weg. bzw. wie ist dein Code?
Bei MySQL können (var-)char-Felder maximal 255 Zeichen lang sein.

mirko2000 25. Jul 2004 13:43

Re: Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu l
 
Hat sich schon erledigt. Hab mal versucht den gesamten SQL-Befehl in zwei Teile zu zerlegen und dann hat es funktioniert.

Delphi-Quellcode:
zeoSQL.SQL.Text := 'SELECT ...........(TEIL 1)';
zeoSQL.SQL.Text := zeoSQL.SQL.Text + ' .......(TEIL 2)';

Bernhard Geyer 25. Jul 2004 13:49

Re: Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu l
 
Ist das vieleicht 'ne Macke der Zeos-Komponenten?

Du kannst aber auch schreiben:
Delphi-Quellcode:
zeoSQL.SQL.Clear;
zeoSQL.SQL.Add('SELECT ...........(TEIL 1)');
zeoSQL.SQL.Add(' .......(TEIL 2)');

Sharky 25. Jul 2004 16:27

Re: Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu l
 
Zitat:

Zitat von Bernhard Geyer
Ist das vieleicht 'ne Macke der Zeos-Komponenten?...

Ist das bei Delphi nicht immer so?

woki 25. Jul 2004 17:38

Re: Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu l
 
Hi,

Zitat:

Zitat von Sharky
Zitat:

Zitat von Bernhard Geyer
Ist das vieleicht 'ne Macke der Zeos-Komponenten?...

Ist das bei Delphi nicht immer so?

Das ist aber auch ganz in Ordnung so, man sollte auch nicht versuchen mehr als 255 Zeichen in eine Zeile zu quetschen, und sobald man mit + die einzelnen Zeilen zusammensetzt, gilt die Begrenzung ja schon nicht mehr.

Grüsse
Woki

Bernhard Geyer 26. Jul 2004 07:14

Re: Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu l
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von Bernhard Geyer
Ist das vieleicht 'ne Macke der Zeos-Komponenten?...

Ist das bei Delphi nicht immer so?

Wieso sollte das so sein?
Strings waren nur in der Delphi-1-Version auf eine länge von 255 Zeichen beschränkt. Ab D2 gibt es dafür den Datentyp ShortString oder den Compilerschalter {$LONGSTRINGS OFF}.
Und dein Code mit "+" erzeugt ja auch einen String der Länger als 255 Zeichen ist.

Sharky 26. Jul 2004 08:12

Re: Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu l
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von Sharky
Zitat:

Zitat von Bernhard Geyer
Ist das vieleicht 'ne Macke der Zeos-Komponenten?...

Ist das bei Delphi nicht immer so?

Wieso sollte das so sein?...

Hai Bernhard,

ich meinte damit das ein String-Literal nicht länger als 255 Zeichen sein darf. Also
Delphi-Quellcode:
var
  tstring : String;
begin
  tstring := 'hier kommen > 255 Zeichen'; // Geht nicht
  tstring := 'hier kommen <= 255 Zeichen' ; // Geht
  tstring := tstring + 'noch einmal <= 255 Zeichen'; // Geht auch. usw.
end;

Bernhard Geyer 26. Jul 2004 12:07

Re: Zugriff auf MySQL mit Zeos-Komponenten - SQL-Befehl zu l
 
Ach so. Es ist ein Compiler-Fehler und kein Laufzeitfehler. :wall:


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