Einzelnen Beitrag anzeigen

Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Hochkomma entfernen -> INSERT INTO-Problem

  Alt 7. Nov 2008, 14:47
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
  Mit Zitat antworten Zitat