Verwendung von TQuery
-
ok danke.
und nochwaS:
was bedeutet denn jetzt das CN.
es geht hier um alle bilddateien, müsste dann dort statt CN = "bmp_name" stehen?thx roman
-
VergissEs schrieb:
hi,
kleiner TipQuery1->RecordCount();
und noch ein Tip schau mal öfter in die Borland Hilfe rein
Mfg
VergissEsgeht nicht, weil es wird erst dann was vernünftiges angezeigt, wenn dei query zu ende durchgelaufen ist.
-
Bj schrieb:
was bedeutet denn jetzt das CN.
das ist einfach x-belibeger name, alias fur deine "count(*)" spalte. damit du die felder der query auch über einen namen ansprechen kannst
-
Bj schrieb:
wo trage ich diese sql anwesung denn dann ein?
Hallo?!? Wie kommst du denn an die Datensätze, wenn man fragen darf?!? Die stehen bestimmt auch nicht einfach so in "Query1" oder?
-junix
-
hehe
ich glaube mich würde das auch wütend machen wenn so ein neuling solch "anscheinend" dumme fragen stellt.aber das ist so:
-> Bj bekam eine aufgabe!
-> Bj sagte den aufgaben-geber: ich habe noch nie mit sql oder datenbanken
im Builder gearbeitet
-> die aufgaben-geber gaben mir danach ein "gerüst", bei dem sie die sql
anweisung für die Datensätze schon eingetragen hatten
-> Bj wollte jetzt aber erstmal überhaupt das ganze Prinzip verstehen, wie
man auf die datenbank zugreift usw....du musst wissen, ich stehe hier jetzt noch vor einem berg, der reisengross (zu gross) zu sein scheint, und -noch- kann ich wenig alleine rausfinden.
deshalb stelle ich all die fragen,d amit ich nach einiger zeit einen kleinen anfang verstehe und dann selber dinge (wie sql-befehle) lernen kann!
thy
Bj
-
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