AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Hochkomma entfernen -> INSERT INTO-Problem
Thema durchsuchen
Ansicht
Themen-Optionen

Hochkomma entfernen -> INSERT INTO-Problem

Ein Thema von HolgerCW · begonnen am 7. Nov 2008 · letzter Beitrag vom 7. Nov 2008
 
nahpets
(Gast)

n/a Beiträge
 
#10

Re: Hochkomma entfernen -> INSERT INTO-Problem

  Alt 7. Nov 2008, 11:01
Hallo,

[OT]Xong war schneller als ich [/OT]

@HolgerCW

wenn Du es auf diese Art und Weise machen willst, musst Du wohl sowas machen:
Delphi-Quellcode:
with DM_Query_XYZ do
begin
  QueryInsert.Close;
  QueryInsert.SQL[0] := 'INSERT INTO ' + Tabelle + '';
  QueryInsert.SQL[1] := '(' + Spalten + ')';
  QueryInsert.SQL[2] := 'VALUES(' + AnsiReplaceText(Werte,'''','''''') + ')';
  QueryInsert.ExecSQL;
end;
Nichtsdestotrotz überleg' Dir, ob Du das nicht doch lieber über Parameter machen willst.

Delphi-Quellcode:
procedure Datensatz_insert(Query : TAdoQuery;Werte: tStringList; Spalten: tStringList; Tabelle: String);
Var
          i : Integer;
          sParams : String;
          sSpalten : String;
begin
  if Werte.Count <> Spalten.Count then begin
    ShowMessage('Keine Übereinstimmung im Werte-/Spaltenpaar.');
    Exit;
  end;
  Query.Close;
  Query.SQL.Clear;
  sParams := '';
  sSpalten := '';
  for i := 0 To Werte.Count - 1 Do begin
    if i = Werte.Count - 1 then begin
      sSpalten := sSpalten + Spalten[i];
      sParams := sParams + ':' + Spalten[i];
      Query.Parameters.AddParameter.Name := Spalten[i];
    end else begin
      sSpalten := sSpalten + Spalten[i] + ',';
      sParams := sParams + ':' + Spalten[i] + ',';
      Query.Parameters.AddParameter.Name := Spalten[i];
    end;
  End;
  Query.SQL.Add('Insert into ' + Tabelle + '(');
  Query.SQL.Add(sSpalten);
  Query.SQL.Add(') values (');
  Query.SQL.Add(sParams);
  Query.SQL.Add(')');
  for i := 0 To Werte.Count - 1 Do Query.Parameters[i].Value := Werte[i];
  Query.ExecSQL;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var
  Werte : TStringList;
  Spalten : TStringList;
begin
  Werte := TStringList.Create;
  Spalten := TStringList.Create;
  Werte.Add('Wert 1'); // Das könnte man ggfls. auch als Commaseperated übergeben
  Werte.Add('Wert 2');
  Werte.Add('Wert 3');
  Spalten.Add('Spalte1');
  Spalten.Add('Spalte2');
  Spalten.Add('Spalte3');
  Datensatz_insert(QueryInsert, Werte, Spalten, 'Tabelle');
  Werte.Free;
  Spalten.Free;
end;
Hat bei mir soeben funktioniert.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz