Verwendung von TQuery



  • Query1 ausführen -> was soll das heißen?
    count rausfinden?
    meinst du damit diese zeile bei SQL in die Query schreiben?:
    select count ("bmp_name") from vapbitmap
    ist diese zeile richtig?

    und wie bekomme ich nun diesen wert count?

    tut mir leid, aber wie gesagt, ich bin anfänger und möchte das einfach verstehen.



  • hi,
    kleiner Tip

    Query1->RecordCount();
    

    und noch ein Tip schau mal öfter in die Borland Hilfe rein

    Mfg
    VergissEs



  • 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 Tip

    Query1->RecordCount();
    

    und noch ein Tip schau mal öfter in die Borland Hilfe rein

    Mfg
    VergissEs

    geht 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 lehrer 🙂

    naja, 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 tabelle

    also doku ===>



  • Query1->SQL->Add("SELECT COUNT(*) CN FROM vapbitmap");
    -> Exception

    Query1->SQL->Add("SELECT COUNT(*) 'CN' FROM vapbitmap");
    -> Exception

    Query1->SQL->Add("SELECT COUNT(*) as CN FROM vapbitmap");
    -> Exception

    Query1->SQL->Add("SELECT COUNT(*) as 'CN' FROM vapbitmap");
    -> Exception

    spielt 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 noch 🙂 oder?
    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 vapbitmap

    danach 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 vapbitmap

    thx
    Bj



  • Bj schrieb:

    1.)
    ich kann aber doch nicht die erste anweisung löschen? die brauche ich doch noch 🙂 oder?

    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 💡


Anmelden zum Antworten