Entwickler-Ecke
Datenbanken - Fehler beim Erstellen des Cursor-Handle ???
Crowbar - Mi 13.11.02 10:26
Titel: Fehler beim Erstellen des Cursor-Handle ???
Hallo,
ich habe zwei Fragen ...
Quelltext
1: 2: 3: 4: 5:
| ... Query.Close; Query.SQL.Text:='INSERT INTO Test (Name,Vorname) VALUES (''Test1'',''VorTest1'')'; Query.Open; ... |
Wird der Befehl Query.Open aufgerufen, erscheint eine Fehlermeldung: "Fehler beim Erstellen des Cursor-Handle" (ENotResultSet)!
Der Eintrag in die Datenbank (*.dbf) wird trotzdem vorgenommen. Aber was hat diese Fehlermeldung zu bedeuten bzw. wie bekomme ich sie weg!?
Meine Datenbank wird in einem DBGrid dargestellt. Wie kann ich erreichen, dass die hinzugefügten Daten, sofort im DBGrid angezeigt werden? Derzeitig werden die neuen Einträge erst beim Hoch- bzw. Herunterscrollen im DBGrid angezeigt. Ein Table.Refresh brachte leider keinen Erfolg!
Wer hat eine Idee? ;-)
Crowbar
Crowbar - Mi 13.11.02 11:13
Hallo,
die Fehlermeldung habe ich jetzt wegbekommen :D !
Statt Query.Open habe ich Query.ExecSQL benutzt.
Zitat:
Mit ExecSQL können Sie Anweisungen ausführen, die keinen Cursor auf Daten (wie z.B. INSERT, UPDATE, DELETE oder CREATE TABLE) zurückgeben.
Aber wie aktualisiere ich mein DBGrid ??
Crowbar
LCS - Mi 13.11.02 11:16
Hi
ein Aktivieren einer Query mit Open, setzt eine Ergebnismenge voraus und die hast du bei einem Insert-Befehl eben nicht. Verwende an dieser Stelle einfach ExecSQL anstelle von Open und das Problem ist gelöst.
Gruss Lothar
--------------------
Oops, kam zu spät :?
Wenn das Refresh nix bringt, kannst du einfach mal die Tabelle schliessen und wieder öffnen.
Crowbar - Mi 13.11.02 11:42
Hallo,
ja, Table.Close - Table.Open hat Erfolg gebracht!
Danke! :-)
Doch gleich eine andere Frage.
Ich möchte einen bestehenden Datensatz ändern.
Mit dem Befehl:
Query.SQL.Text:='UPDATE Test set Name = ''Neuer Name''';
werden jedoch alle Namen auf "Neuer Name" geändert.
Irgendwie muss ich doch einen "Cursor" setzen, auf den Datensatz, den ich ändern möchte?!?
Crowbar
ao - Mi 13.11.02 12:09
Hallo Crowbar,
du musst das Update-Statement einfach noch um eine Where-Klausel erweitern:
Quelltext
1:
| UPDATE Test SET Name = "Neuer Name" WHERE Name = "Alter Name" |
Gruss
Andreas
Crowbar - Mi 13.11.02 12:19
Ja, jetzt klappt es !
Danke! :-)
Crowbar
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!