Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-String Länge (https://www.delphipraxis.net/95770-sql-string-laenge.html)

haentschman 12. Jul 2007 21:10

Datenbank: Paradox • Zugriff über: SQL

SQL-String Länge
 
Hallo alle...

ich habe mal eine kleine Frage... :-D

ich weiß, das die maximale Stringlänge 256 Zeichen beträgt. :roll:

wenn ich mit UNION 2 SQL-Strings 'verbinde' gilt dann die maximale Länge für jede einzelne Teilanweisung oder auch für den gesamten String ? :gruebel:

Danke für Euer Interesse... :hi:

juergen 12. Jul 2007 21:27

Re: SQL-String Länge
 
Hallo haentschman,
ich weiß nicht genau, ob ich dich richtig verstanden habe.
Wenn du einen längeren String aufteilen willst, wäre ein
Delphi-Quellcode:
query1.sql.add('');
das was du suchst.
Damit kannst du dir längere SQL Strings aneinander "adden".

haentschman 12. Jul 2007 21:38

Re: SQL-String Länge
 
Hallo Jürgen...

ich hatte bei mir im Projekt schon einmal das D5 gemeckert hat, das der SQL String größer als 256 Zeichen wäre. :(
ich habe hier im Forum gelesen, das eigentlich mehr Zeiche möglich wären. Ich vermute, daß es mit localSQL zusammenhängt.

Mein Problem demnächst wird sein, daß ich definitiv einen Größeren String basteln muß weil ich mit UNION mehrere Teilanweisungen zu einer Ergebnismenge zusammensetzen muß. Wie das funktioniert ist mir klar.

wenn jeder Teilstring mit 256 Zeichen möglich wäre hätte ich keine Sorgen. Gilt der gesamte String incl. UNION habe ich ein Problem mit der Stringlänge und ich muß mir etwas anderes einfallen lassen. :roll:

Danke für die schnelle Reaktion... :hi:

[edit]
:idea: kann es sein, daß die 256 Zeichen für die SQL.Add Anweisung gelten aber mit der gesamten SQL-Länge nichts zu tun haben? Dann wäre es ja easy....
[/edit]

mkinzler 12. Jul 2007 21:40

Re: SQL-String Länge
 
Ich könnte jetzt ja ketzerisch zu einer richtigen Datenbank raten ...

Jelly 12. Jul 2007 21:44

Re: SQL-String Länge
 
Ich schätze eher, es geht hier um die maximale Stringlänge eines Paradox Strings (Varchar), und die kann schon auf 255 Zeichen begrenzt sein, wenn ich mich recht erinnere.

Aber was hat das mit einem UNION im SQL Befehl zu tun, denn ein Union liefert dir höchstens weitere Zeilen in einem Resultset. Ledlich die Spaltenbreite ist auf 255 begrenzt. Es können aber durchaus 100000 Zeilen mit 200 Zeichen zurückgeliefert werden.

Wenn dir 255 Zeichen nicht ausreichen, dann gibts auch noch andere SQL Datentypen (cf. Text, Blob...)

mkinzler 12. Jul 2007 21:45

Re: SQL-String Länge
 
Er meinte wohl die Länge des Statements

haentschman 12. Jul 2007 21:50

Re: SQL-String Länge
 
...ich weiß, ich weiß.... :(

aller Anfang ist schwer. Wenn dieses Projekt fertig ist, setze ich es neu auf MySQL auf.

2 Versionen...eine für kleine Datenmengen ( kleine Firmen ) und eine für größere.

Ich programmiere in Delphi erst seit ca. 1,5 Jahren mehr als Hobby weil ich selbstständiger Handwerker bin und ja noch meine Brötchen verdienen muß. Was ich in dieser Zeit mit learnig by doing erreicht habe ist schon nicht schlecht... Wenn ich mit dem Projekt fertig bin stelle ich es sowieso bei Euch der Inquisition... :-D

Aber trotzdem Danke... :hi:

mkinzler 12. Jul 2007 21:54

Re: SQL-String Länge
 
Warum dann mit den Eigenheiten und Beschränkungen eines veralteten und seit Jahren nicht mehr weiterentwickelten System rumärgern. Ich würde gleich was moderneres nehmen und auf ein durchgehenden System setzten. Lokal ne embedded-Lösung und für größere Bestände nen richtigen Server.
Hier würde sich FireBird embedded/FireBird, MySQL embedded/MySQL, MSSQl compact/MSSQl express/ MSSQl anbieten. Wobei ich nicht unbeding MySQL nehmen würde.

haentschman 12. Jul 2007 21:55

Re: SQL-String Länge
 
Danke an alle... :-D

Ich arbeite zur Zeit mit Paradox und Query. In einer Query.SQL.Add(String) war bei 256 Zeichen Schluß.

Die Frage war, ob der String einer einzelnen SQL.Add Anweisung nur 256 Zeichen betragen, die Gesamtlänge des SQL Strings nach mehreren SQL.Add auch größer sein kann oder es eine Beschränkung von localSQL ist. :roll:

Jelly 12. Jul 2007 21:55

Re: SQL-String Länge
 
Ja was ist denn jetzt dein Problem, denn gelöst ist hier ja noch nix.
Hast due Probleme mit den Strings in Paradox oder in Delphi?

Und bevor du auf MySQL setzt, lies dir mal die vielen Thread "Welches Datenbanksystem ist für mich geeignet" hier durch. Es gibt daneben auch noch etliche, imho bessere, DBMS als MySQL.

haentschman 12. Jul 2007 22:10

Re: SQL-String Länge
 
...ich weiß es ist schon spät...

wie kann ich es anders erklären ? :gruebel:

Query.SQL.Add('select.....270 Zeichen.....') ---> Fehler: maximale Stringlänge 256 Zeichen

gilt das nur für diese Anweisung oder für die gesamte SQL-Anweisung die möglich wäre ?

Jelly 12. Jul 2007 22:12

Re: SQL-String Länge
 
Das scheint wohl wirklich eine Begrenzung von Paradox sein, denn TStringListen (und nichts anderes ist die SQL Property von TQuery), macht dir diesbezüglich keine Einschränkungen.

haentschman 12. Jul 2007 22:15

Re: SQL-String Länge
 
Danke...macht mir aber keinen Mut... :(

da muß ich mir etwas anderes einfallen lassen...

Gute Nacht... :hi:

Jelly 12. Jul 2007 22:19

Re: SQL-String Länge
 
Wechsle die Datenbank! Das hilft bei Paradox (und MSACCESS) immer :wink:

Hansa 13. Jul 2007 01:34

Re: SQL-String Länge
 
Zitat:

Zitat von haentschman
...ich weiß es ist schon spät...
Query.SQL.Add('select.....270 Zeichen.....') ---> Fehler: maximale Stringlänge 256 Zeichen

gilt das nur für diese Anweisung oder für die gesamte SQL-Anweisung die möglich wäre ?

Hilfreich waren die Antworten in der Tat bisher kaum. :mrgreen: 270 Zeichen sind für die Source-Zeile zu lang, das ist alles. Spalte das auf. Add kann zig-mal hintereinander aufgerufen werden (mit Teilstrings jeweils <= 255 Zeichen).

Und ehe ichs vergesse : wechsle die DB :mrgreen: , bevor das ganze Programm neu programmiert werden muss. Wenn das der Hersteller schon seit 5 Jahren sagt, dann wirds langsam Zeit. Ist aber ohne Gewähr !! Eventuell kann Paradox tatsächlich nur strings < 255 verarbeiten. :shock:

marabu 13. Jul 2007 06:47

Re: SQL-String Länge
 
Guten Morgen.

Nach meinem Verständnis geht es hier um die Beschränkung von String Literalen in Delphi auf 255 (nicht 256) Zeichen, die leicht durch Verkettungen überwunden werden kann. Der Editor meiner IDE hat ein Zeilenlimit von 1.024 Zeichen (nicht 270). LocalSQL hat ein Limit von 32.768 Zeichen pro SQL-Statement (Length(SQL.Text), kann auch 65K sein).

Grüße vom marabu

haentschman 13. Jul 2007 07:33

Re: SQL-String Länge
 
Guten Morgen an alle..

da habe ich ja noch mal Glück gehabt... :-D

zum Thema Datenbank wechseln... wer fliegen will muß erst mal laufen lernen !

Danke... :hi:

mkinzler 13. Jul 2007 07:42

Re: SQL-String Länge
 
das Problem ist nur das die manche Techniken von paradox auf einen Holzweg führen. Am besten gleich ne andere nehmen!

haentschman 13. Jul 2007 07:53

Re: SQL-String Länge
 
nun ja...

ich habe mich schon mit MySQL beschäftigt. MySQLServer schon probiert...Ist auch eigentlich nicht schwer mit DirectSQL bzw. mit den CLab Komponenten (wenn man wirklich proffessionell/kommerziell arbeitet ). Was mich an MySQL stört ist diese undurchsichtige Lizenzgeschichte welche hier schon oft diskutiert wurde.

in Firebird habe ich mich gestern noch kurz hineingelesen.... :gruebel:
Was, wo, wie ...noch keinen richtigen Durchblick.

ich denke...alles zu seiner Zeit.

Danke für die Motivation. :-D

mkinzler 13. Jul 2007 08:00

Re: SQL-String Länge
 
Grundsätzlich unterscheiden sich der Zugriff auf die Datenbanken nicht so sehr, da die VCL eine einheitliche Zugriffsmethode mit TDataSet & Co. bietet. Wenn du mit MySQL zurecht kommst, kommst du auch mit FireBird zurecht. Hier im Forum gibt es auch einige die mit dem Feuervogel umgehen konnen.
Was meinst du mit was, wo, wie?
www.ibphoenix.com
Kompos: IBX, IBO, IBDaC (von CoreLabs; sehr empfehlenswert), Zeos, MDO, ...

haentschman 13. Jul 2007 08:10

Re: SQL-String Länge
 
mit was, wo, wie

meinte ich zum Beispiel:

- Classic oder Super ?
- wo gehört der Server hin ? Client/ohne Client ?
- eigentlich erst einmal allgemeines Verständnis.
- Serververbindung über IP ? (sprich über Web via vpn)
- müssen zum Programm DLL´s mitgeliefert werden ?
- kann der Server mitgeliefert werden ?

...und noch jede Menge mehr... lesen, lesen, lesen... :???:

mkinzler 13. Jul 2007 08:18

Re: SQL-String Länge
 
Zitat:

- Classic oder Super ?
Windows: Super (außer bei Mehrkernmachienen), POSIX-OS: Classic
Zitat:

- wo gehört der Server hin ?
Wenn mehrere clients entweder auf server oder halt einer der Rechnern
Zitat:

Client/ohne Client ?
Wenn standalone embedded, was nur eine spezielle Client-Dll ist, welche aber auch standardmässig verwendet werden kann, wenn auf das lokale Verbindungsprotokoll verzichtet werden kann (Auf lokalen Server via Netzwerkprotokoll kann aber trotzdem zugegriffen werden)
- eigentlich erst einmal allgemeines Verständnis.
Zitat:

- Serververbindung über IP ? (sprich über Web via vpn)
Port 3050(gds_db) oder lokales Protokoll
Zitat:

- müssen zum Programm DLL´s mitgeliefert werden ?
Ja der Client
Zitat:

- kann der Server mitgeliefert werden ?
ja es gelten hierfür keine Beschränkungen, embedded-Server ist in die Client-Bibliothek eingebettet, die weiterhin Verbindungen über das Netz auf andere Server ausführen kann.

haentschman 13. Jul 2007 08:21

Re: SQL-String Länge
 
Danke für die Infos... :-D

ich muß jetzt mal weg...Termine :(

bis bald... :hi:

hoika 13. Jul 2007 08:58

Re: SQL-String Länge
 
Hallo,

eine einfache Suche nach "bde limit"
hätte es auch getan ...

http://www.delphifaq.com/faq/delphi/database/f17.shtml


Grenze des SQL-Statements 4k(RequestLive=True) oder 64k (False)


Heiko

Hansa 13. Jul 2007 13:00

Re: SQL-String Länge
 
Zitat:

Zitat von haentschman
... wer fliegen will muß erst mal laufen lernen !

Aber doch nicht so ! :lol: Momentan versuchst Du laufen zu lernen auf einem Bein und mit einer Krücke (die zweite kann nicht mehr repariert werden). Irgendwann wirst Du merken, dass du zwei Beine hast und die eine Krücke nicht mal gebraucht wird. Krasser Vergleich, was ? :mrgreen: Aus Gewohnheit hüpfst du dann trotzdem des öfteren noch auf einem Bein rum und fällst immer wieder auf die Schnauze. :mrgreen:

Aber egal, die Frage an sich ist ja geklärt.

haentschman 15. Jul 2007 12:42

Re: SQL-String Länge
 
Hallo alle...

um das hier abzuschließen....

ich habe beschlossen das Projekt erst einmal kpl. fertig zu machen....damit ich überhaupt mal was fertig habe.


beim nächsten wird alles anders... :-D


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