Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Commit auch für function eingeschlossen? (https://www.delphipraxis.net/135943-commit-auch-fuer-function-eingeschlossen.html)

Privateer3000 20. Jun 2009 18:19

Datenbank: Access • Version: 2003 • Zugriff über: ADO

Commit auch für function eingeschlossen?
 
Hi Gemeinde,

ich habe folgende Frage für dieses Schema:
Delphi-Quellcode:
function setzepunkte(..);
begin
  SQL-Anweisungen
end;

procedure berechne(..)
begin
 BeginTrans
   SQL-Anweisungen
   setzepunkte(...)
 Committrans
except
 Rollbacktrans
end;
Werden nun die SQL-Anweisungen in der function "setzepunkte" mit in ein evtl. Commit/Rollback eingeschlossen?
oder muss in der funktion die Transaktionen extra angegeben werden?

Grüße und schönes WoE

sx2008 20. Jun 2009 18:24

Re: Commit auch für function eingeschlossen?
 
Zitat:

Zitat von Privateer3000
Werden nun die SQL-Anweisungen in der function "setzepunkte" mit in ein evtl. Commit/Rollback eingeschlossen?

Ja, wenn immer die gleiche ADOConnection benützt wird.

Privateer3000 20. Jun 2009 18:36

Re: Commit auch für function eingeschlossen?
 
Ja wird es...
noch eine letzte Sache:
kann ein fehlgeschlagenes SELECT ein except auslösen?
D.h. bis zum Commit werden mehrere SELECT und UPDATE ausgeführt.
Oder lösen nur INSERT/UPDATE/DELETE ein except aus?

sx2008 20. Jun 2009 19:56

Re: Commit auch für function eingeschlossen?
 
Zitat:

Zitat von Privateer3000
kann ein fehlgeschlagenes SELECT ein except auslösen?

Im Prinzip schon; auch ein SELECT kann auf einen Timeout laufen.
Insbesondere dann, wenn die Tabelle oder einer der betroffenen Records (aufgrund einer laufenden Transaction) eine exklusive Sperre hat.

hoika 20. Jun 2009 20:01

Re: Commit auch für function eingeschlossen?
 
Hallo,

ein ungültiges Select kann eine Exception auslösen,
z.B. Ungültige Feldnamen / Tabellennamen.

Ist aber sehr unwahrscheinlich, könnte aber (wie auch oben der connect timeout)


Heiko


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