![]() |
[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:
erschreibt die Werte auch brav in die Datenbank, aber danch trennt er die Verbindung zur Datenbank.
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; Woran liegt das bzw. wie kann ich das verhindern? Gruß Ingo |
Re: [FibPlus] Verbindung getrennt nachAufruf einer SP
Schreiben von Daten :
Delphi-Quellcode:
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:
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; |
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 |
Re: [FibPlus] Verbindung getrennt nachAufruf einer SP
Hallo
Danke, das mit dem CommitRetaining hat funktiniert Gruß Ingo |
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:
|
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 |
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 |
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 10:31 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 by Thomas Breitkreuz