Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Refresh nach StoredProc im DBGrid (https://www.delphipraxis.net/154991-sql-refresh-nach-storedproc-im-dbgrid.html)

WizoHulk 4. Okt 2010 15:56

Datenbank: SQL • Version: 1 • Zugriff über: ibExpert,

SQL Refresh nach StoredProc im DBGrid
 
Hi,
ich habe ein Problem mit meiner SQL Datenbank.
Ich habe ein Formular wo bestimmte informationen in die Datenbank eingetragen werden über eine StoredProc.
nach der StoredProc soll er mir die Datenbank Aktualisieren.
Leider macht er das nicht mit dem Code.
Was habe ich Falsch gemacht?

Delphi-Quellcode:
procedure TForm1.RefreshDB(ADataset: TIBDataSet);
var
  LOldPos : Integer;
begin
  LOldPos := ADataset.RecNo;

  ADataset.Close;
  ADataset.Transaction.Commit;
  ADataset.Open;
  ADataset.Transaction.StartTransaction;
  ADataset.RecNo := LOldPos;
end;
und das ist meine StoredProc
Delphi-Quellcode:
procedure TForm1.DBSaveUpdateTechnik(ADB: TIBDatabase);
var
  IBStoredProc : TIBStoredProc;
  IBTransAction : TIBTransaction;
begin
  IBStoredProc := TIBStoredProc.Create(nil);
  IBTransAction := TIBTransaction.Create(nil);
  try
    IBStoredProc.Transaction := IBTransAction;
    IBTransAction.DefaultDatabase := ADB;
    IBStoredProc.StoredProcName := 'Technikid';
    with IBStoredProcTechnik do
    begin
      Prepare;
      ParamByName('newid').AsInteger := FTechnikId;
      ParamByName('Technikid').AsInteger := FTechnikId;
      ParamByName('utyp').AsInteger := FUtypNr;
      ParamByName('beschreibung').AsString := MemBeschreibung.Text;
      ParamByName('deltag').AsString := 'f';
      ParamByName('ebenen').AsInteger := GEbene;
      ParamByName('lagerung').AsString := EditLagerung.Text;
      ParamByName('tipps').AsString := EditTipps.Text;
      ParamByName('artid').AsInteger := 0;//was war jetzt noch mal die artid
      ParamByName('hinweise').AsString := EditHinweise.Text;
      ParamByName('sedierung').AsString := EditSedierung.Text ;
      ParamByName('lagerungshilfen').AsString := EditLagerungsHilfen.Text;
      ParamByName('strahlenschutz').AsString := EditStrahlenschutz.Text;
      ParamByName('ebenentext').AsString := EditEbenenText.Text;
      ExecProc;
      end;
  RefreshDB(IbDTechnik)
  finally
      IBStoredProc.Free;
      IBTransAction.Free;
   end;
end;
Danke schon mal imn Vorraus.
ich hoffe ich habe kein unötigen thread eröffnet.

nachti1505 4. Okt 2010 16:12

AW: SQL Refresh nach StoredProc im DBGrid
 
Die SP "Technikid" existiert aber auch in der DB?

Das Commit müsste imho direkt nach dem ExecProc; ausgeführt werden.

WizoHulk 7. Okt 2010 12:54

AW: SQL Refresh nach StoredProc im DBGrid
 
ich habs raus gefunden. mein Fehler war, ich habe das dataset geöffnet und geschlossen. dadurch hatte er mir eine Fehlermeldung um die Ohren gehaun.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz