Geschwindigkeit zum suchen eines Datensatz



  • Hallo,

    was ist schneller ?
    Datenbank öffnen mit SQL Befehl und Filter auf den zu suchende Datensatz
    oder
    Datenbank öffnen, Datensatz auslesen, vergleichen und Next ?

    Gruß Siegfried



  • SQL ist doch genau auf solche Fälle ausgelegt. Es ist nicht umsonst eine Abfragesprache. 😉



  • Hallo,

    befor ich eine neue SQL Anweisung schreibe, muß doch die DB geschlossen werden und nach dem SQL erneut geöffnet werden ?

    Oder denke ich falsch ?

    Gruß Siegfried 🙂



  • Hallo

    nicht die Datenbank, sondern das TQuery-Control, in dem die neue Abfrage ausgeführt werden soll. Es ist übrigens kein Problem, mit zwei TQuery-Controls zwei Abfragen gleichzeitig auf der selben Tabelle auszuführen.

    bis bald
    akari



  • Hallo,

    stehe total auf dem ...
    was ist TQuery-Control, und wo finde ich dies?

    Gruß Siegfried 😞



  • Beppo schrieb:

    befor ich eine neue SQL Anweisung schreibe, muß doch die DB geschlossen werden und nach dem SQL erneut geöffnet werden ?

    Nein. Normalerweise öffnet man die Datenbank einmalig zu dem Zeitpunkt an dem man sie braucht und lässt sie entweder offen bis sämtliche Vorgänge mit der DB abgeschlossen sind oder bis das Programm geschlossen wird. Ist da Programm generell auf die Nutzung von einer DB angewiesen, sollte direkt zu Beginn die DB geöffnet werden.



  • Beppo schrieb:

    Hallo,
    stehe total auf dem ...
    was ist TQuery-Control, und wo finde ich dies?

    😕
    Wie öffnest du denn sonst eine Datenbank mit SQL-Befehl?

    bis bald
    akari



  • Hallo,

    kurz ein Auszug meiner Code

    //
    //--->    das Query Hauptblock öffnen
        DataProzess->qHauptBlock->Close();
        DataProzess->qHauptBlock->Close();
        DataProzess->qHauptBlock->SQL->Clear();
        DataProzess->qHauptBlock->SQL->Add("SELECT * FROM '" + asIn_11  + "' Where");
        DataProzess->qHauptBlock->SQL->Add(asIn_12 + " = '" + asIn_13 + "'");
        DataProzess->qHauptBlock->RequestLive = true;
        DataProzess->qHauptBlock->DBSession->AddPassword(asPwUserDb_2);
        DataProzess->qHauptBlock->Open();
        iHbRegCount = DataProzess->qHauptBlock->RecordCount;
    

    hier meine bescheidene Frage. Kann ich danach noch diesen Code einsetzen?

    DataProzess->qHauptBlock->SQL->Add(asIn_15 + " = '" + asIn_16 + "'");
    

    Gruß Siegfried 😞



  • Hallo

    klar, DataProzess->qHauptBlock wieder schließen, SQL-Anweisung erweitern/neu zusammenstellen und ausfürhren. Wo ist das Problem?
    Übrigens ist DataProzess->qHauptBlock höchstwahrscheinlich ein TQuery-Objekt.



  • Hallo,

    also doch, SQL-Befehl(Filter), DB öffnen, Satz verarbeiten, DB schliessen, dann wiederholen mit neuem SQL-Befehl(Filter).
    und nicht SQL-Befehl(Filter), DB öffnen, Satz verarbeiten, neuer SQL-Befehl(neuer Filter), Satz verarbeiten und wenn zu Ende die DB schliessen

    Gruß Siegfried 🙂

    habe vergessen, ist ein TQuery-Objekt.



  • hallo beppo,

    kleiner denkfehler:

    nicht die db wird geschlossen, sondern die datenmenge. also das query oder der table!

    gruß gerd



  • Hallo,

    immer gut wenn aufgepaßt wird. Danke für deinen Hinweis. DB ist falsch, meinte auch das Query.

    Gruß Siegfried 👍 👍 👍



  • gerd01 schrieb:

    ... also das query oder der table!

    Im Englischen als auch im Deutschen heißt es die Query und die Table, da beides weiblich ist. Oder sagst du im Deutschen auch "das Abfrage" und "der Tabelle"? 😉


Anmelden zum Antworten