AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi was tut TQuery.Open;

was tut TQuery.Open;

Ein Thema von theomega · begonnen am 18. Aug 2002 · letzter Beitrag vom 18. Aug 2002
Antwort Antwort
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#1

was tut TQuery.Open;

  Alt 18. Aug 2002, 19:08
Hallo
ich will ein Query ausführen. Dazu habe ich ein fertig eingestelltes TQuery (qrmain) auf meinem Forumlar. Jetzt mach ich
Code:
qrmain.sql.Clear;
qrmain.sql.Add('Hier das Query');
qrmain.ExecSql;
das Problem ist jetzt, wenn ich Daten auslesen will, dann funzt es nicht.
qrmain.recordcount ist immer 0. Jetzt habe ich herausgefunden, das hinter die Befehle noch ein
Code:
qrMain.Open;
muß.
Nur wenn ich jetzt ein Query ausführe, dass Daten schreibt, geht es wieder nicht. Dann muß das
Code:
qrMain.Open;
wieder weg.

Erklärt mir einer, wazu das da ist, und wann ich es brauche und wann nicht?

Danke

ThOMegA
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 18. Aug 2002, 19:20
Zitat von Delphi-Online Hilfe:
Die Methode Open öffnet eine Datenmenge.

procedure Open;

Beschreibung

Durch einen Aufruf von Open wird die Eigenschaft Active der Datenmenge auf True gesetzt. Die Datenmenge kann danach mit Daten gefüllt werden, die aus einer Datenbank oder einer anderen Quelle stammen (z.B. von einem Provider). Der Wert der Eigenschaft CanModify bestimmt, ob eine aktive Datenmenge Änderungen speichern kann.

Wenn Sie Active auf True setzen, werden folgende Aktionen durchgeführt:

Die Ereignisbehandlungsroutine für BeforeOpen wird aufgerufen (falls vorhanden).
Der Status der Datenmenge wird auf dsBrowse gesetzt.
Eine Möglichkeit zum Abrufen von Daten wird eingerichtet (normalerweise durch Öffnen eines Cursors).
Die Ereignisbehandlungsroutine für AfterOpen wird aufgerufen (falls vorhanden).

Tritt beim Öffnen der Datenmenge ein Fehler auf, wird ihr Status in dsInactive geändert und der Cursor (falls vorhanden) geschlossen.
So, da ich mich aber nicht mit Datenbanken auskenne, kann ich dir keine weiteren Infos dazu geben
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#3
  Alt 18. Aug 2002, 19:24
so wit war ich auch schon.
  Mit Zitat antworten Zitat
TheSilent1

Registriert seit: 18. Aug 2002
2 Beiträge
 
#4
  Alt 18. Aug 2002, 21:16
Hallo!

Wenn du SQL-Statements wie INSERT, UPDATE, DELETE, also Operationen durchführst, die keine Datenmenge zurück gibt, musst du

Code:
query.sql.clear;
query.sql.add('Deine Query');
query.execsql;
Wenn du allerdings ein SELECT-Statement verwendest, also einen SQL-Befehl der eine Datenmenge zurück gibt, musst du
Code:
query.sql.clear;
query.sql.add('Deine Query');
query.open
verwenden. Nach dem Öffen kannst du dann deine Datensätze auslesen.
Du hast bei dieser Methode allerdings auch die Möglichkeit, Datensätze hinzuzufügen, zu löschen oder zu aktualisieren. Du brauchst dazu allerdings folgende Methoden von TQuery:
Code:
query.edit ==> versetzt den Datensatz in den Edit-Modus um ihn zu  
               verändern
query.append ==> fügt einen leeren Datensatz an
query.delete ==> löscht den aktuellen Datensatz
query.post ==> speichert die nach Edit durchgeführten Änderungen
Du kannst diese Methoden nur einsetzen, wenn die Query nur auf eine Tabelle gerichtet ist.

Ich hoffe das hat dir ein bisschen geholfen.

Gruß

TheSilent1
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz