AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADO + Mehrbenutzerbetrieb + Transaktionen + SQL Server
Thema durchsuchen
Ansicht
Themen-Optionen

ADO + Mehrbenutzerbetrieb + Transaktionen + SQL Server

Ein Thema von sega84 · begonnen am 20. Mai 2009 · letzter Beitrag vom 20. Mai 2009
 
sega84

Registriert seit: 18. Sep 2006
73 Beiträge
 
Delphi XE2 Professional
 
#1

ADO + Mehrbenutzerbetrieb + Transaktionen + SQL Server

  Alt 20. Mai 2009, 07:50
Datenbank: SQL Server • Version: 2000/2005/2008 • Zugriff über: ADO
Hallo zusammen,
habe ein Projekt mit etwa 120 Tabellen zu Betreuen.
Wir verbinden uns via ADO auf die Datenbank.
Da im Programm Transaktionen verwenden, kommt es mitlerweile zu sehr vielen Timeouts, da verschiedenste Locks auf den Datensätzen liegen.
Mit der Software arbeiten momentan maximal gleichzeitig 30 Leute auf einer Datenbank (Entweder SQL Server 2000 oder 2005, teilweise schon 2008).

Nun ist es mein Ziel, die Timeouts zu entfernen.
Der ADO-Provider ist:
Microsoft OLE DB Provider for SQL Server (dieser darf nicht geändert werden, er muss so bleiben!!!)

Momentan verwende ich folgende Einstellungen für die ADOConnection:
Code:

Delphi-Quellcode:
TAdoConnection(DB).Attributes := [xaCommitRetaining, xaAbortRetaining];
TAdoConnection(DB).IsolationLevel := ilReadUncommitted;
TAdoConnection(DB).LoginPrompt := False;
TAdoConnection(DB).ConnectionTimeout := 30;
TAdoConnection(DB).CommandTimeOut := 0;
TAdoConnection(DB).Connected := True;
Die Transaktionen werden wie folgt gestartet:
TAdoConnection(DB).BeginTrans; Sie werden so commited:
TAdoConnection(DB).CommitTrans; So läuft der Rollback:
TAdoConnection(DB).RollbackTrans; So läuft die Überprüfung, ob eine Transaktion gestartet ist
result := TAdoConnection(DB).InTransaction; Die Transaktionen werden immer so kurz wie möglich und so lang wie nötig offen gehalten. Leider kann es aber vorkommen, dass eine Nutzer halt einen Kaffee trinken gehen und somit eine Transaktion geöffnet bleibt (Das alte Leiden halt).

Nun meine Frage:
Welche Einstellungen, sollten für einen Mehrbenutzer-Betrieb einer SQL Server Datenbank mit Transaktionsnutzung, für die ADO-Connnection gelten? Wie sollten die Transaktionen gestartet und beendet werden? Was ist allgemein im Mehrbenutzerbetrieb mit ADO zu beachten? Es gibt viele Indizies auf den einzelnen Tabellen, haben diese damit was zu tun?

Vielen Dank für eure Mithilfe.
  Mit Zitat antworten Zitat
 


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 12:25 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