Thema: Delphi Insert SQL

Einzelnen Beitrag anzeigen

Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#8
  Alt 30. Jun 2003, 10:56
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
  Mit Zitat antworten Zitat