Hallo,
ich erstelle zur Zeit eine Datenbankanwendung mit Lazarus. Ich greife auf den den Microsoft SQL Server 6.5 mit einer ODBC Verbindung zu. Die Verbindung besteht auch und ich kann z.B. mittels "Select" Datensätze auslesen. Mein Problem beginnt erst, wenn ich versuche mit "Insert" oder ähnlichen SQL-Statements auf die Datenbank zuzugreifen. Da erscheint dann immer die Fehlermeldung: EDatabaseError with message: SQL-Statement not set... Wo liegt mein Problem? Im Quelltext? In dem ODBC Treiber? Hier den Quelltext den ich verwende:
SQLTransaction1.Active:=True;
with SQLQuery1 do
begin
Active:=False;
InsertSQL.Add('INSERT INTO versuch(ID,name) VALUES (3,Peter) GO');
Active:=True;
ApplyUpdates;
end;
Ich wäre euch sehr verbunden, wenn ihr mir bei meinem Problem helfen könntet
Lazarus und MS SQL
Re: Lazarus und MS SQL
Ich würde die folgenden Dinge ändern:
- die Transaktion erst nach dem SQL-Befehl aktivieren
- die SQL-Eigenschaft vonSQLQuery1 verwenden (anstatt InsertSQL)
- auf den Inhalt der SQL-Eigenschaft achten (mit Add wird zu dem vorhandenen Inhalt etwas hinzugefügt)
- bei SQL-Befehlen mit Parametern arbeiten (du willst ja sicher auch mal den Inhalt eines Eingabefeldes speichern)
Anstelle von ApplyUpdates könnte man auch ExecSQL probieren. Falls der letzte Parameter deiner SQL-Anweisung nicht MS SQL spezifisch ist würde ich ihn weglassen.
knight
- die Transaktion erst nach dem SQL-Befehl aktivieren
- die SQL-Eigenschaft vonSQLQuery1 verwenden (anstatt InsertSQL)
- auf den Inhalt der SQL-Eigenschaft achten (mit Add wird zu dem vorhandenen Inhalt etwas hinzugefügt)
- bei SQL-Befehlen mit Parametern arbeiten (du willst ja sicher auch mal den Inhalt eines Eingabefeldes speichern)
Anstelle von ApplyUpdates könnte man auch ExecSQL probieren. Falls der letzte Parameter deiner SQL-Anweisung nicht MS SQL spezifisch ist würde ich ihn weglassen.
knight