ich verstehe bei den Zeos Komponenten folgendes nicht, warum geht Beispiel 1 und in Beispiel 2 nur Delete und Modify? Einen Datensatz kann ich nicht einfügen.
Beispiel 1:
Code: Alles auswählen
begin
Var1 := 'xyz';
with DM.ZQuery do
begin
Active := False;
SQL.Clear;
SQL.Add(' SELECT ');
SQL.Add(' T.Feld1, ');
SQL.Add(' T.Feld2, ');
SQL.Add(' T.Feld3, ');
SQL.Add(' T.Feld4 ');
SQL.Add(' FROM ');
SQL.Add(' tbl_tabelle T, ');
SQL.Add(' WHERE ');
SQL.Add(' T.Feld3 LIKE :X ');
Params.ParamByName('X').Value := Var1;
Active := True;
Open;
end;
end;
Beispiel 2:
Code: Alles auswählen
begin
Var1 := 'xyz';
with DM.ZUpdateSQL do
begin
DeleteSQL.Add(' DELETE FROM tbl_tabelle ');
DeleteSQL.Add(' WHERE tbl_tabelle.Feld1 = :OLD_Feld1 ');
InsertSQL.Clear;
InsertSQL.Add(' INSERT INTO tbl_tabelle ');
InsertSQL.Add(' (Feld1, ');
InsertSQL.Add(' (Feld2, ');
InsertSQL.Add(' (Feld3, ');
InsertSQL.Add(' Feld4) ');
InsertSQL.Add(' VALUES ');
InsertSQL.Add(' (:Feld1, ');
InsertSQL.Add(' :Feld2, ');
InsertSQL.Add(' :X, ');
InsertSQL.Add(' :Feld4) ');
Params.ParamByName('X').Value := Var1;
ModifySQL.Clear;
ModifySQL.Add(' UPDATE tbl_tabelle ');
ModifySQL.Add(' Feld1 = :Feld1, ');
ModifySQL.Add(' WHERE tbl_tabelle.Feld1 = :OLD_Feld1 ');
end;
end;
Die beiden Prozeduren führe ich gleich beim Programmstart aus. Wenn ich für Feld3 auch eine DBEdit Komponente verwende und den Wert per Hand einfüge funktioniert es. Es soll aber in Feld3 automatisch ein Wert aus der Variablen Var1 eingetragen werden. Aber mit dem Parameter geht das nicht. Es geht aber in Beispiel 1. Wo liegt denn da der Fehler?
Gruss Matze