Zitat von
HolgerCW:
eine Frage habe ich noch. Kann man TStrings nur mit Add füllen oder kann man die auch in etwa so übergeben: [Variable1,Variable2,...] ?
Müsste sonst nämlich alle Aufrufe der Procedure Datensatz_insert komplett ändern.
Wenn du die Werte in den Strings
Spalten und
Werte kommasepariert hast, kannst du die Prozedur auch aufrufen, ohne ihren Kopf zu verändern.
Folgende Prozedur hat den gleichen Kopf, wie du ihn vorgegeben hattest:
Delphi-Quellcode:
procedure Datensatz_insert (Werte:String; Spalten:String; Tabelle:String);
var i: Integer;
sValues,sWerte,sSpalten: TStrings;
begin
sValues := TStrings.Create;
sWerte := TStrings.Create;
sSpalten := TStrings.Create;
sSpalten.Delimiter := ',';
sSpalten.QuoteChar := ' ';
sValues.Delimiter := ',';
sValues.QuoteChar := ' ';
sSpalten.CommaText := Spalten;
sWerte.CommaText := Werte;
for i:=0 to sSpalten.Count-1 do
sValues.Add(':' + sSpalten[i]);
with DM_Query_XYZ do
begin
QueryInsert.Close;
QueryInsert.Add('INSERT INTO ' + Tabelle);
QueryInsert.Add('(' + sSpalten.DelimitedText + ')');
QueryInsert.Add('VALUES(' + sValues.DelimitedText + ')');
QueryInsert.Prepare;
for i:=0 to sSpalten.Count-1 do
QueryInsert.ParamByName(sSpalten[i]).Asstring := sWerte[i];
QueryInsert.Execute;
end;
LG,
Xong