AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi kleine Frage zu ADO und Datenbanksperren
Thema durchsuchen
Ansicht
Themen-Optionen

kleine Frage zu ADO und Datenbanksperren

Ein Thema von NerdIII · begonnen am 17. Mär 2007 · letzter Beitrag vom 17. Mär 2007
Antwort Antwort
NerdIII

Registriert seit: 17. Mär 2007
Ort: Hannover
7 Beiträge
 
Turbo Delphi für Win32
 
#1

kleine Frage zu ADO und Datenbanksperren

  Alt 17. Mär 2007, 11:34
Datenbank: MS SQL Server • Version: 2005 • Zugriff über: TADOConnection
Hallo alle miteinander,

Ich bin in Sachen Transaktionen nicht sehr bewandert. Mein Kollege und ich sollen eine Datenbankanwendung schreiben. Es gibt eine Client-Anwendung, die aus dem Web abgerufen wird und ihre Daten im Internet auf einer MS SQL DB speichert. Die Datenbank besteht - wie so oft - aus mehreren Tabellen, die nach und nach verändert werden. Änderungen erfolgen mal hier mal da. Wenn die Anwendung beendet wird, muss die DB wieder konsistent sein. Hier empfiehlt sich eine Transaktion zu starten und erst zum Schluss zu committen. Soweit klar.

Jetzt gibt es aber auch noch eine Serveranwendung die in regelmäßigen Abständen eine Art Snapshot von einer großen Menge Kundendaten braucht. Wie fange ich das am besten an? Sollte man die Transaktion auf 'serializable' stellen und dann in einem einzigen SELECT alle relevanten Daten laden?? Oder kann man mit ADO auch von vorne herein auf einem Snapshot arbeiten?

Hinweis: Für spätere Statistiken sollen nie Daten aus der Datenbank gelöscht werden, was bedeutet das es viele alte Daten gibt, die von meinen SELECTs eh herausgefiltert werden, jedoch können wir so keine Technologie verwenden, die eine Kopie der gesamten Datenbank voraussetzt. (Ich weiß nicht wie so ein Snapshot funktioniert)

Viele Dank im Vorraus,
Marco

btw. die Forensoftware rockt
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: kleine Frage zu ADO und Datenbanksperren

  Alt 17. Mär 2007, 12:23
Zitat von NerdIII:
Es gibt eine Client-Anwendung, die aus dem Web abgerufen wird und ihre Daten im Internet auf einer MS SQL DB speichert. Die Datenbank besteht - wie so oft - aus mehreren Tabellen, die nach und nach verändert werden. Änderungen erfolgen mal hier mal da. Wenn die Anwendung beendet wird, muss die DB wieder konsistent sein. Hier empfiehlt sich eine Transaktion zu starten und erst zum Schluss zu committen. Soweit klar.
Nee, nicht klar. Du kannst nicht in Webapplikationen eine Transaktion starten und diese erst wieder schliessen, wenn der Webuser seine Daten bestätigt. Macht er das nicht, bleibt deine Transaktion offen. Wie willst Du eigentlich unterschiedliche User und Transaktionen verwalten. Bei Webanwendungen ist nach Darstellung der html Seite im Browser die Connection verloren.
  Mit Zitat antworten Zitat
NerdIII

Registriert seit: 17. Mär 2007
Ort: Hannover
7 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: kleine Frage zu ADO und Datenbanksperren

  Alt 17. Mär 2007, 13:13
Sorry, hab mich da undeutlich ausgedrückt. Also der Kunde bekommt seine Anwendung per Java-Webstart bereitgestellt (automatische Updates, Crossplatform, ...). Diese kommuniziert über 'Webservices' mit einem Tomcat-Server auf Server1. Dieser läuft ständig und trägt die Änderungen dann in die DB auf Server2 ein. Auf Server2 läuft schließlich auch die eigentliche Serveranwendung, die aus der DB einen großen Satz konsistenter Daten braucht.
Ich hab ein bisschen gelesen und folgende Möglichkeiten gefunden:
MS SQL 2005: SNAPSHOT-Isolationslevel:
+ Daten immer gleich während meiner Transaktion
+ Tomcat Server kann weiterhin in die DB schreiben
- MS SQL 2005-spezifisch, Datenbank kann nicht umgestellt werden, was aber auf lange Sicht von oben geplant ist.

SQL-92: SERIALIZABLE:
+ Daten immer gleich während meiner Transaktion
+ Funktioniert mit allen DBs, die den Standard unterstützen
- Tomcat-Server und Clients stehen vor verschlossenen Türen

Die SERIALIZABLE-Variante würde ich bevorzugen, weil die Serveranwendung ihre Arbeit durchaus Nachts innerhalb weniger Minuten erledigen kann.
  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 18:57 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