Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [FibPlus] Verbindung getrennt nachAufruf einer SP (https://www.delphipraxis.net/27419-%5Bfibplus%5D-verbindung-getrennt-nachaufruf-einer-sp.html)

IngoB 9. Aug 2004 22:02


[FibPlus] Verbindung getrennt nachAufruf einer SP
 
Hallo

Ich habe folgendes Problem mit Firebird 1.5.1 und den FibPlus Komponenten

Ich habe eine einfache Storded Procedure mit der ich ein einfaches insert mache.


Aufrufen tue ich diese mit

Delphi-Quellcode:
  with dmMain.pfibsprocEtbEintrag do
    begin

      ParamByName('Eintrag').Asstring := cxmemoEintrag.Text;
      parambyName('Bemerkung').AsString := cxmemoBemerkung.Text;

      if not dmMain.pfibtransDefault.InTransaction then dmMain.pfibtransDefault.StartTransaction;
      try
        ExecProc;
        dmMain.pfibtransDefault.Commit;
      except
        dmMain.pfibtransDefault.Rollback;
      end;
erschreibt die Werte auch brav in die Datenbank, aber danch trennt er die Verbindung zur Datenbank.

Woran liegt das bzw. wie kann ich das verhindern?

Gruß Ingo

Hansa 9. Aug 2004 23:56

Re: [FibPlus] Verbindung getrennt nachAufruf einer SP
 
Schreiben von Daten :

Delphi-Quellcode:
procedure SchreibeDaten (Feld1,Feld2 : string);
begin
  with DM do begin
    SP.ParamByName('Feld1').AsInteger := StrToInt (Feld1);
    SP.ParamByName('Feld2').AsFloat := StrToFloat (Feld2);
    SP.ExecProc;
  end;
end;
So, aber jetzt mußt Du Butter bei die Fische geben. :shock: Wie sieht die SP in der DB aus ? Ist die überhaupt angelegt ? Starttransaction wird nach der Parameterübergabe aufgerufen. Werden die eventuell überschrieben ? Da bin ich überfragt, könnte schon sein. Welches Administrationstool verwendest du ? Schon mal damit ausprobiert ? usw. Wie du siehst : Fragen über Fragen, deshalb für DP-Chat ungeeignet. Lemmy ist auch noch da und MrSpock. :mrgreen:

Lemmy 10. Aug 2004 06:18

Re: [FibPlus] Verbindung getrennt nachAufruf einer SP
 
Guten Morgen,

Mensch Hansa, warum weckst Du mich so früh *gähn* ;-)

Ich denke das Problem liegt daran, dass Du nach dem ExecProc die Transaktion mit einem Commit zu machst. Wenn die Transaktio weiterhin laufen soll (weil z.B. andere DataSets dranhängen), dann versuch mal ein CommitRetaining.

Grüße
Lemmy

IngoB 10. Aug 2004 07:31

Re: [FibPlus] Verbindung getrennt nachAufruf einer SP
 
Hallo

Danke, das mit dem CommitRetaining hat funktiniert

Gruß Ingo

Hansa 10. Aug 2004 10:00

Re: [FibPlus] Verbindung getrennt nachAufruf einer SP
 
Schön, daß das funktiomiert. Aber jetzt hat die Lösung eine Frage für mich aufgeworfen. :lol: Ich wußte jetzt nicht mehr, ob ich nun Commit oder Commitretaing verwende. Und ich wollte mal sehen, wo bei mir Starttransaction steht. Ich rufe entweder Commit auf oder Rollback. Der Witz ist aber jetzt, daß ich Starttransaction nie aufrufe. :shock: Wieso funktioniert das Programm trotzdem ? :gruebel:

Lemmy 10. Aug 2004 11:43

Re: [FibPlus] Verbindung getrennt nachAufruf einer SP
 
Hi Hansa,

das ist der Zauber von Delphi.... :lol:

Irgendwo in den Einstellungen der Komponenten wird stehen, dass die Transaktionskomponenten automatisch Transaktionen starten kann bzw. dass die DataSets die Transaktion anweisen können eine zu starten.... Bei IBX gibts ja ne Eigenschaft AutoCommit, so etwas änliches wird es bei den FIBPLus für den ungekehrten Fall auch geben....

Grüße
Lemmy

IngoB 10. Aug 2004 11:52

Re: [FibPlus] Verbindung getrennt nachAufruf einer SP
 
Hallo Hansa

Es gibt bei der Komponente pfibDataset die Eigenschaft Options dies kannst du auf poStartTransaction setzten dann startet er automatisch eine Transaction

Gruß Ingo

Hansa 10. Aug 2004 12:14

Re: [FibPlus] Verbindung getrennt nachAufruf einer SP
 
Ich wußte, daß in dem Toolbox-Artikel drin stand, daß die Komponente selber die Transaktion startet, aber nicht mehr wo und warum. Das Dataset ist offensichtlich standardmäßig so eingestellt. Habe es mit einem neuen getestet. :shock: *suchtartikel*


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 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