Verwendung von TQuery
-
Ja, aber, aber, wenn dir einer ja schonmal ein Beispiel vorgeproggt hat, wie man Datensätze mittels SQL abruft, wieso schaust du dir dann nicht seinen Quelltext an und probierst mal, ob du sein Beispiel adaptieren kannst? (-> Damit ist der Lerneffekt nämlich mit Abstand am grössten)
-junix
-
nein, also er hat mir nur so ein gerüst gegeben, welches die einträge einfach nur aufgelistet hat.
und wie soll ein anfänger damit was anfangen?
da bräuchte ich einfach hilfe von einem lehrernaja, so langsam komme ich ja rein.
aber:@XQgene
er schrieb:
Query1->SQL->Add("SELECT COUNT(*) AS CN FROM vapbitmap");
Query1->Open();
int count = Query1->FieldByName("CN")->AsInteger;so habe ich diese zeilen in meinem code, doch es kommt eine exception:
Allgeiner SQL Fehler: Token unknwon - line 2, char -1 SELECT...
-
welche datenbank benutzt du?
-
informix
das meintest du doch oder?
-
ja, wenn das eine datenbank ist.
wenn es so ist, dann soll auch eine sql referenz für die db geben. schau mal da rein, ob z.b. as[b] bekkant ist oder [b]count
oder lasse enfach as weg. die meinsten db können das auch:
select count() cn from tabelle
oder
select count() 'cn' from tabelle
oder
select count(*) as 'cn' from tabellealso doku ===>
-
Query1->SQL->Add("SELECT COUNT(*) CN FROM vapbitmap");
-> ExceptionQuery1->SQL->Add("SELECT COUNT(*) 'CN' FROM vapbitmap");
-> ExceptionQuery1->SQL->Add("SELECT COUNT(*) as CN FROM vapbitmap");
-> ExceptionQuery1->SQL->Add("SELECT COUNT(*) as 'CN' FROM vapbitmap");
-> Exceptionspielt es eine rolle das select gross geschrieben wird?
naja, werde es einfach mal klein probieren.also die bisherige anweisung die in SQL der Query1 steht ist:
select * from vapbitmap order by bmp_name...
thx
BJ
-
1. hast du vor deinem Add die alte sql anweisung aus query gelöscht?Query1->SQL->Clear();
Query1->SQL->Add("select count(*) as cn from vapbitmap");
Query1->SQL->Open();2. geht es so?
select count(*) from vapbitmap
-
1.)
ich kann aber doch nicht die erste anweisung löschen? die brauche ich doch nochoder?
wrum muss denn eigentlich SQL geleert werden? dürfen dort keine 2 zeilen drin stehen?soweit startet das programm, doch erst wenn ich die zeile
Query1->SQL->Open();
enfernt habe.
denn dort kommt die fehlermeldung das Open nicht in TStrings exisitiert?!?und naja, das programm startet zwar, aber die 1. zeile ist ja gelöscht wurde, somit passiert gar nix.
im klartext:
1.) kann man von vorneherein nicht diese zeile:
select count(*) as cn from vapbitmap
zu der anderen in Eigenschaften von Query reinschreiben, zu der
darin bereits existierenden als 2. Zeile???
2.) warum funzte das open denn nicht mehr?thx
Bj
-
also ich habe jetzt von anfang an in die eigenschaft SQL von Query reingeschrieben:
select count(*) as cn from vapbitmapdanach diesen befehl in der funktion:
int zaehler = Query1 -> FieldByName("cn") -> AsInteger;dies funktioniert aber auch nicht, und dort kommt auch eine exception.
deshalb muss doch etwas an diesem befehl nicht stimmen oder?:
select count(*) as cn from vapbitmapthx
Bj
-
Bj schrieb:
1.)
ich kann aber doch nicht die erste anweisung löschen? die brauche ich doch nochoder?
ich habe keine ahnung, ob du sie noch brauchst, und wenn schon, dann ersätze die sql anweisung in deiner query mit der die du brauchst. oder nimm für verschidene sql's verschidene querys: Query1, und Query2
wrum muss denn eigentlich SQL geleert werden? dürfen dort keine 2 zeilen drin stehen?
Die Eigenschaft SQL muß eine vollständige SQL-Anweisung enthalten. Mehrere Anweisungen (Stapelanweisung) sind nur zulässig, wenn dies vom verwendeten Server unterstützt wird. aber nicht bei SELECT
soweit startet das programm, doch erst wenn ich die zeile
Query1->SQL->Open();
enfernt habe.
denn dort kommt die fehlermeldung das Open nicht in TStrings exisitiert?!?das heist Query1->Open() und nicht Query1->SQL->Open();
-
Hast du anschliesend auch ein Query1->Open augeführt ?
Gruß Rainer
-
Ich glaube du solltest dich erstmal ein wenig mit der vcl und deren Komponenten auseinandersetzen und vorallendingen die Hilfeseiten mit den Methoden und Eigenschaften anschauen.
Gruß Rainer
-
RaKo schrieb:
Ich glaube du solltest dich erstmal ein wenig mit der vcl und deren Komponenten auseinandersetzen und vorallendingen die Hilfeseiten mit den Methoden und Eigenschaften anschauen.
Gruß Rainer
Bingo
-
ok, der fehler lag bei
Query->SQL->Open .....so was dummes.
naja, ok, dann vielen dank, jetzt klappt es einwandtfrei!
VIELEN DANK!
und ich habe auch die struktur verstanden
jetzt habt ihr aus mir einen glückicheren menschen gemachtthx
Bj
-
Bist du 24h online Xqgene?
Gruß Rainer
-
ja ja ja, das werde ich alles machen.
doch wenigstens habe ich jetzt ein laufendes programm, mit dem ich auch experimentieren kann.das finde ich immer wichtig!
also danke euch.
-
RaKo schrieb:
Bist du 24h online Xqgene?
Gruß Rainer
wenn ich nicht schlafe