Entwickler-Ecke

Datenbanken - EDataBaseError


enigma - Mi 30.10.02 21:40
Titel: EDataBaseError
Ich verwende eine SQLQuery-Komponente um auf eine Datenbank zuzugreifen


Quelltext
1:
2:
3:
SQLQuery.SQL.Add('SELECT * FROM tabelle');
SQLQuery.Open;
SQLQuery.First;


Zur laufzeit bekomme ich dann den Fehler: Cursor not reseted.
Wie kann ich den Cursor reseten?

(Vorher führe ich eine SQL-Anweisungen mit ExecSQL aus)


LCS - Do 31.10.02 09:06

Hi
an dem Code ist erst mal nix auszusetzen. Poste doch mal welche DB du verwendest und welche SQL Anweisung du vorher ausführst.

Gruss Lothar


enigma - Do 31.10.02 09:10

Benutze MS SQL-Server 2000.

Vorher mach ich ein paar Insert und Delete Anweisungen die ich mit
ExecSQL ausführe


GuGl - Do 31.10.02 12:18

Hi enigma,

wird die query vorher geschlossen, und SQL.TEXT mit CLEAR
auf '' gesetzt ?


enigma - Do 31.10.02 14:21

also SQL.Clear mach ich nicht (ich dachte das geht automatisch)
und muss man auch nach ExecSQL die SQLQuery wieder Closen??


GuGl - Do 31.10.02 14:53

Nach execsql muß man nicht closen, da keine Ergebnismenge
vorhanden ist.

Wenn du mit dem SQL.ADD(...) arbeitest, solltest du immer vorher
den clear machen, oder direkt den SQL.TEXT := '...' benutzen.

Ich habe mir das so angewöhnt:



Quelltext
1:
2:
3:
4:
5:
with query1 do begin
     close;
     sql.text := '.....';
     open;  // oder execsql
end;


das klappt auf jeden Fall


enigma - Do 31.10.02 16:33

danke hat gefunzt

nächstes problem:

Wenn ich ne SQLQuery auf eine Tabelle verwendet hab, und danach wieder für eine andere Tabelle benutzen will, findet der bei FieldValues keine Spalten der neuen Tabelle.

Wie grieg ich das hin??