HI Hansa,
nochmal anders: Übliches Vorgehen bei einer TDataSet:
1. Über eine Select-
SQL wird eine Datenmenge vom Server geholt:
Code:
DataSet.SelectSQL.Text:='Select * from Tabelle';
DataSet.Open;
2. Über visuelle Felder werden die Daten angezeigt und können bearbeitet werden. Dazu steht z.B. in der DeleteSQL Eigennschaft die entsprechende
SQL:
Code:
delete from Tabelle
where
ID = :OLD_ID
Diese Standard-
SQL-Statements werden bei den entsprechenden Methodenaufrufen (Delete) entsprechend ausgeführt ohne dass der Benutzer noch was machen muss.
Für Dein Beispiel würde das heißen:
Code:
LagDS.Close
LagDs.SelectSQL.Text:='Select * from Lager;';
LagDs.DeleteSQL:Text:='Delete from Lager where ????';
LagDs.UpdateSQL.Text:='Update Lager Set.....';
ÖagDs.RefreshSQL.Text:='.....';
LagDs.InsertSQL.Text:='Insert into Lager (Menge) VALUES (:Menge)';
Das sind genau die
SQL-Statements die z.B. die TIBDataset automatisch generiert (Rechter Mausklick auf die TDataSet). Nun kannst Du mit folgendem Code Inserts durchführen:
Code:
LagDS.Open;
LagDS.Insert;
LagDS['Menge']:=33;
LagDs.Post;
LagDS.Close;
Transaction.Commit;
Du siehst das ist ein riesen Aufwand, speziell dann, wenn man eigentlich keine Daten vom Server holen will. Deshalb gehe ich in diesen Fällen her und verwende direkt die TDataSet.SelectSQL-Eigenschaft, schreibe da die entsprechende
SQL rein und führe diese über ein ExecSQL aus, so wie ich es im vorherigen Post geschrieben habe.
Grüße
Lemmy