AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehlermeldung: Verteilter oder manueller Transaktionsmodus
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung: Verteilter oder manueller Transaktionsmodus

Ein Thema von King555 · begonnen am 16. Mai 2006 · letzter Beitrag vom 16. Mai 2006
Antwort Antwort
King555
(Gast)

n/a Beiträge
 
#1

Fehlermeldung: Verteilter oder manueller Transaktionsmodus

  Alt 16. Mai 2006, 07:31
Datenbank: MSSQL • Version: 8.0 • Zugriff über: ADO
Delphi 7 - ADO - Fehlermeldung: Verteilter oder manueller Transaktionsmodus

Ich bekomme in meinem Delphi 7 Programm, welches auf eine MSSQL Datenbank via ADO zugreift, an einer Stelle folgende Fehlermeldung: "Da der verteilte oder manuelle Transaktionsmodus aktiv ist, kann keine neue Verbindung erstellt werden". Was bedeutet das? Witzigerweise hat das Programm in der Delphi 6 Version noch funktioniert. Nach der Umstellung auf Delphi 7 kommt diese Meldung immer. Das ganze kommt beim Abspeichern eines Datensatzes, allerdings passieren dann noch sehr viele andere Sachen (u.a. werden diverse SQL Anweisungen ausgeführt). Es ist also kein reines ".Post".
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#2

Re: Fehlermeldung: Verteilter oder manueller Transaktionsmod

  Alt 16. Mai 2006, 07:48
Zitat von King555:
... Das ganze kommt beim Abspeichern eines Datensatzes, allerdings passieren dann noch sehr viele andere Sachen (u.a. werden diverse SQL Anweisungen ausgeführt). Es ist also kein reines ".Post".
Scheint so, als würde ein Prozess auf einen Datensatz treffen, der in Bearbeitung ist (die dazu gehörende Transaktion nicht Commited bzw. mit Rollback verworfen wurde).
In dem Fall wartet der 2. Prozess auf das Commit bzw. Rollback bis zum definierten Timeout.

Du kannst mal versuchen das Isolationlevel deiner ADOConnection auf ReadCommitted bze. DirtyRead zu stellen.

In den SQL-Statements kann man beim SQLServer alternativ Optionen setzen.
z.B. bedeutet SELECT * FROM MeineTabelle (NoLock) das nur die Datensätze aus <MeineTabelle> gelesen werden, die kein X-Lock Flag (exklusive Datensatzsperre, offene "Schreib-Transaktion") haben.

Falls das nicht hilft wäre etwas Code und ein paar Informationen zu den verwendeten Komponenten hilfreich.



Schöne Grüße,
Jens
  Mit Zitat antworten Zitat
King555
(Gast)

n/a Beiträge
 
#3

Re: Fehlermeldung: Verteilter oder manueller Transaktionsmod

  Alt 16. Mai 2006, 10:40
"DirtyRead" gibt es nicht als "IsolationLevel", "ReadCommitted" schon. Bisher stand es auf "ReadUncommitted". Ich habe es auf "ReadCommitted" gestellt, aber der Fehler kommt immer noch. Es dauert nun allerdings mindestens doppelt so lange, bis die Fehlermeldung erscheint, das Programm reagiert erstmal eine ganze Zeit lang nicht mehr.

Die benutzten Komponenten sind nur TADOConnection und TADODataSet. Code kann ich im Moment nicht posten, da ich erstmal die wichtigen Stellen raussuchen muss. Den ganzen Code versteht sowieso keiner (nicht mal ich).
  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 05:33 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