AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensätze schnell einfügen bzw. ersetzen
Thema durchsuchen
Ansicht
Themen-Optionen

Datensätze schnell einfügen bzw. ersetzen

Ein Thema von messie · begonnen am 4. Mai 2014 · letzter Beitrag vom 27. Mai 2014
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

AW: Datensätze schnell einfügen bzw. ersetzen

  Alt 26. Mai 2014, 21:07
Hallo Markus,

bei mir klemmt es immer noch...
Kann evtl. jemand Anderes das mal testen?

Grüße, Ulfert

Die Klammer ist falsch. Ich habe gerade kein Delphi zu Hand. Aber so sollte es gehen:

Delphi-Quellcode:
var
  sL, slF: TStrings;
  i: Integer;
...
begin
  try
    sl := TStringlist.Create;
    slf := TStringList.Create;
    slf.Delimiter := ';';
    sl.add( 'Susi'; 'Müller'; ...
    ..
    IBQuery.SQL.Text := 'update or insert into Personen ( vorname, nachname, gebdat) values ( :vorname, :nachname, :gebdat ) MATCHING ( vorname, gebdat) RETURNING id;';
    for i := 0 to sl.Count -1 do
    begin
      slf.DelimitedText := sl[i];
      IBQuery.Params[0].Value := slf[0];
      IBQuery.Params[1].Value := slf[1];
      IBQuery.Params[2].Value := slf[2];
      IBQuery.ExecSQL;
      id := IBQuery.Params[3].Value; //oder id := IBQuery.ParamByName('RET_ID').Value;
      ...
    end;
  finally
    slf.Free;
    sl.Free;
   ...
end;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Datensätze schnell einfügen bzw. ersetzen

  Alt 26. Mai 2014, 21:08
Wo klemmt es den genau?
Markus Kinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Datensätze schnell einfügen bzw. ersetzen

  Alt 27. Mai 2014, 09:14
Ich habe es jetzt mal getestet, so funktioniert es in dem Testprogramm ( UniDAC statt IBDAC; aber UniDAC verwendet ja den IBDAC-Provider)

Delphi-Quellcode:
var
  sL, slF: TStrings;
  i, id: Integer;
begin
  try
    sl := TStringlist.Create;
    slf := TStringList.Create;
    slf.Delimiter := ';';
    sl.add( 'Susi;Mueller;01.01.1900');
    sl.add( 'Peter;Mueller;01.01.1990');
    sl.add( 'Susi;Mueller;24.12.1974');
    sl.add( 'Susi;Maier;01.01.1900');
    IBQuery.SQL.Text := 'update or insert into Person ( vorname, nachname, gebdat) values ( :vorname, :nachname, :gebdat ) MATCHING ( vorname, gebdat) RETURNING id;';
    for i := 0 to sl.Count -1 do
    begin
      slf.DelimitedText := sl[i];
      IBQuery.Params[0].Value := slf[0];
      IBQuery.Params[1].Value := slf[1];
      IBQuery.Params[2].asString := slf[2];
      IBQuery.ExecSQL;
      id := IBQuery.Params[3].Value; //oder id := IBQuery.ParamByName('RET_ID').Value;
      UniQuery1.Refresh;
      Application.ProcessMessages;
      ShowMessage( Format( 'Rückgabe: %d', [id]));
    end;
  finally
    slf.Free;
    sl.Free;
  end;
end;
Angehängte Grafiken
Dateityp: jpg 1.jpg (31,3 KB, 11x aufgerufen)
Dateityp: jpg 2.jpg (29,6 KB, 11x aufgerufen)
Dateityp: jpg 3.jpg (30,7 KB, 11x aufgerufen)
Dateityp: jpg 4.jpg (32,8 KB, 12x aufgerufen)
Markus Kinzler
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Datensätze schnell einfügen bzw. ersetzen

  Alt 27. Mai 2014, 16:17
Moin,

jetzt funzt es bei mir auch. Ich glaube, ich sollte öfter mal den Rechner neu starten.
Ich habe ohnehin das Gefühl, dass Firebird sehr empfindlich auf Energiesparmodi ist.

Danke, Messie
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:38 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