Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO SQL String Längenbegrenzung ? (https://www.delphipraxis.net/78875-ado-sql-string-laengenbegrenzung.html)

Bernhard Geyer 12. Okt 2006 17:25

Re: ADO SQL String Längenbegrenzung ?
 
Zitat:

Zitat von Cyberbob_at_tot
Ich denke eher, das das zur verfügung stellen, das Problem ist. ich bekomme den Kompletten Text nicht in ADO.SQL.TEXT hinein. Ich denke das ausfürhen dürfte dann kein Problem mehr sein, wenn der String erstmal komplett drin ist! Kann euch leider den String nicht posten, dann wäre es einfacher!

Da das ADO.SQL-Property vom Typ TStrings ist kann es nicht auf Delphi-Seite liegen da man beim MS SQL-Server und dem entsprechenden Provider ja mehr hineinbekommt (Denke ich jedenfalls). Also muß es entweder beim Coden liegen (255-Zeichen-Problem) oder beim Provider.

shmia 12. Okt 2006 17:56

Re: ADO SQL String Längenbegrenzung ?
 
Zitat:

Zitat von Cyberbob_at_tot
@shmia
Ich hatte das schon vorher genau so gemacht, bin zwar Anfänger aber nicht doof :)
Aber trotzdem kommen nur Fragezeichen.

Du hast mich schon wieder falsch verstanden. "Tomaten auf den Augen" hat nichts mit doof sein zu tun!!!
Jeder Programmierer, sogar die Besten, hat manchmal Tomaten auf den Augen.
Der Aufruf ADO.SQL.Loadfromfile('c:\test.txt') lädt garantiert den Inhalt der Datei in die Abfrage rein.
Mit LoadFromFile kannst du Abfragen mit vielem MBs laden; das ist überhaupt kein Problem.
Wenn du also meine 5 Punkte ausführst, dann ist garantiert, dass in ADO.SQL.Text die gewünschte Abfrage drinsteht.
Es gibt nur noch einen Schwachpunkt: LoadFromFile benötigt den ANSI Zeichensatz; UNICODE wird nicht unterstützt.
Du kannst auch schreiben:
ADO.SQL.SaveToFile('c:\test2.txt')
und die erzeugte Datei anschauen und mit der 1. Datei vergleichen.
Wo kommen den die Fragezeichen; wie lässt du dir diese anzeigen?

Cyberbob_at_tot 12. Okt 2006 18:05

Re: ADO SQL String Längenbegrenzung ?
 
@shmia
muss ich morgen alles Probieren.

Die Anzeige der ? Habe ich über Showmesssage gemacht!

Cyberbob_at_tot 13. Okt 2006 09:16

Re: ADO SQL String Längenbegrenzung ?
 
Guten Morgen zusammen,
habe nun das mit Savetofile ausprobiert. Folgendes kommt raus....
------------------------------------
Komplette Abfrage :) Aber dannach kommt das und beim Anzeigen per Showmessage nur ?

ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð*º
ð
-------------------------------------
Wenn ich SQL dann ausfürhen lassen sagt er ungültiges Zeichen :(

MFG

Cyberbob

marabu 13. Okt 2006 09:29

Re: ADO SQL String Längenbegrenzung ?
 
Hallo,

mir scheint dein Problem hat nichts mit einem size limit zu tun. Wenn ein Kodierungsproblem vorliegt, dann solltest du diesen Aspekt erst einmal isoliert untersuchen. Kannst du eine einfache Query (SELECT FIRST 3 * FROM tbl) auf den von dir probierten Wegen verarbeiten?

Wenn du dein Statement aus einer Datei lädst, dann kannst du mittels NotePad prüfen, wie die Datei kodiert wurde. Handelt es sich um UniCode, dann kannst du diese Datei beim Speichern umkodieren.

Grüße vom marabu

Cyberbob_at_tot 13. Okt 2006 09:57

Re: ADO SQL String Längenbegrenzung ?
 
Ich denke ich habe den Fehler .... zu wenig arbeitsspeicher :(


Habe nun im Quelltexteditor von Delphi das ganze eingefügt, da kam der Fehler, das die Zeile zu lange ist, also mehrere Zeilen draus gemacht und nochmal eingefügt. Dann hat er den Kompletten String akzeptiert. Beim Anzeigen via Showmessage kommt auch der komplette String. Beim Ausführen, kommt dann die Meldung "Zu wenig arbeitspeicher" :(

Das ganze habe ich nun mit Savetofile gespeichert...und dann per Loadfromfile wieder reingeladen. Nun kommt in der Showmessage die Komplette abfrage, aber mit hunderten ? dahinter. sehr sehr komisch. An der Datei habe ich nichts geändert.

MFG

Cyberbob

Bernhard Geyer 13. Okt 2006 19:40

Re: ADO SQL String Längenbegrenzung ?
 
Zitat:

Zitat von Cyberbob_at_tot
Das ganze habe ich nun mit Savetofile gespeichert...und dann per Loadfromfile wieder reingeladen. Nun kommt in der Showmessage die Komplette abfrage, aber mit hunderten ? dahinter. sehr sehr komisch. An der Datei habe ich nichts geändert.

Gibt doch mal ein Testprogramm rüber indem folgendes Konfigurierbar ist:
Servername, Username, Passwort und ein Skript indem eine Testdb erzeugbar ist. Dann könnte ich das mit unseren Oracle 8 ausprobieren.

An "zu wenig Arbeitsspeicher" glaub ich im Rahmen einer SQL-Anweisung nicht.

Cyberbob_at_tot 13. Okt 2006 19:47

Re: ADO SQL String Längenbegrenzung ?
 
@Bernhard Geyer
Kann es Montag erst weitermachen, dann werd ich mal versuchen sowas zu schreiben. Die woche soll es auch mehr Speicher geben. Da Delphi 2005 512MB Vorraussetzt, und ich nur 256 drin habe, könnte es wahrscheinlich daran liegen! naja

Bernhard Geyer 13. Okt 2006 19:53

Re: ADO SQL String Längenbegrenzung ?
 
Zitat:

Zitat von Cyberbob_at_tot
@Bernhard Geyer
Kann es Montag erst weitermachen, dann werd ich mal versuchen sowas zu schreiben.

Ich habe daheim auch kein Oracle am laufen.

Zitat:

Zitat von Cyberbob_at_tot
Die woche soll es auch mehr Speicher geben. Da Delphi 2005 512MB Vorraussetzt, und ich nur 256 drin habe, könnte es wahrscheinlich daran liegen! naja

Wie. Du arbeitest mit D2005 mit 256 MB ram :shock:. Am besten noch mit XP
Startet es denn überhaupt oder gehst Du erst mal Kaffee-Drinken. Ich hoffe du bekommst dann gleich 1 GB.

alzaimar 13. Okt 2006 19:55

Re: ADO SQL String Längenbegrenzung ?
 
:shock: Eine Query mit mehr als 1000 Zeichen? Ab in eine View damit!

Wenn die Query dynamisch erstellt wird, tja... denn zumindest beim TADOConnect.Execute-Befehl gibt es eine Längenbegrenzung für den zu übergebenden Befehl. Der kann tatsächlich nur ca. 1000 Zeichen lang sein. Warum das so ist, weiss ich nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz