AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DB Abgleich

Ein Thema von Tim Henford · begonnen am 11. Sep 2007 · letzter Beitrag vom 13. Sep 2007
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#1

DB Abgleich

  Alt 11. Sep 2007, 12:54
Datenbank: MS SQL 2000 • Zugriff über: ADO
Hallo,

gibt es eine einfach Lösung eine lokale MSSQL 2000 DB mit einer im Netzwerk abzugleichen und wie kann man Übeschneidungen behandeln oder muss man sich ein eigens Konzept basteln?

Danke Tim
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DB Abgleich

  Alt 11. Sep 2007, 12:58
Am Besten indem man verschiedenen Wertebereiche für die IDs und GUIDS für diese verwendet.
Markus Kinzler
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#3

Re: DB Abgleich

  Alt 11. Sep 2007, 14:28
Was passiert eigentlich, wenn ich gerade mehrere Datensätze schreiben bzw. posten will und das Netzwerk zusammenbricht oder ein Stromausfall kommt - ist die DB dann "zerstört"?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: DB Abgleich

  Alt 11. Sep 2007, 14:29
Nein, dank Transaktionssteuerung wird die Transaktion zurückgefahren (rollback).
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#5

Re: DB Abgleich

  Alt 11. Sep 2007, 14:31
Vorausgesetzt, man verwendet Transaktionen. Tut man das nicht, sind halt alle Änderungen die bis zum Verbindungsabbruch vollständig abgesetzt wurden auch wirklich in der Datenbank.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#6

Re: DB Abgleich

  Alt 11. Sep 2007, 14:36
wie läuft das mit der Transaktionssteuerung, muss man da was einstellen oder geht das automatisch?
Wie verifiziert dann die DB, ob der Eintrag nun halb oder schon komplett war?

Gilt das auch für den Fall, dass der Server abstürzt?
Kann man darüber irgendwo was lesen?

Ich lasse von meinen Programm eine Sperrliste anlegen, damit kein anderer User im gleichen Moment auf die DB zugreifen kann, kann es passieren, dass ein anderer User im gleichen Moment auch eine Sperrlist erzeugt?
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#7

Re: DB Abgleich

  Alt 11. Sep 2007, 14:43
Hrm? Beim SQL Server kann man Tabellen explizit sperren. Wobei es unsinnig ist, einen Table lock zu setzen wenn man nur eine Handvoll Datensätze anpacken will...

Ein Datenbankserver stürzt im übrigen nicht einfach so ab. Und für den Fall eines Stromausfalls hängt man halt eine USV dran.

Die Datenbank erkennt ein komplettes Statement in der Regel an einem abschliessenden Semikolon, und führt das Ding dann aus. Danach kommt die nächste Anforderung dran die empfangen wird. Solange ein Statement nur halb da ist wird auch nix ausgeführt.

Transaktionen:
BEGIN TRANSACTION
update, insert, delete, wasauchimmer...
... und wieviel man mag.

Wenn alles okay:
COMMIT TRANSACTION

Wenn nicht okay:
ROLLBACK TRANSACTION

Geht die Verbindung zwischendrin flöten wird automatisch ein rollback durchgeführt.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#8

Re: DB Abgleich

  Alt 11. Sep 2007, 14:48
Danke für die Hilfe.

Ja Frage ist nur, was passiert, wenn plötzlich doch irgendwas abstürzt beispielsweise auf dem Server selbst.

Wie funktioniert das mit dem Table lock? Geht das beim MSSQL2000 und den normalen Ado-Komponenten unter Delphi 7 auch bereits?
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#9

Re: DB Abgleich

  Alt 11. Sep 2007, 14:56
Was soll denn da Abstürzen?
Wenn der Server einfach mal so abkachelt, dann hat wer auch immer ein größeres Problem, als eine nicht abgeschlossene Transaktion.

Nochmal: Du kannst zwar eine Tabelle locken, aber es macht nicht viel Sinn.
Arbeitest Du mit einer Transaktion, dann werden die Daten erst nach Abschluss der Transaktion geschrieben und auch erst dann für andere User sichtbar. Ein Write-Lock wird inenrhalb der Transaktion automatisch gesetzt, das heisst solange die Transaktion läuft kann kein anderer User einen engepackten Datensatz schreibend locken.

Ein kompletter Read-Lock auf der Tabelle würde a) andere Sessions komplett blockieren und b) ist er wie gesagt unsinning wenn nur ein paar Datensätze angepackt werden.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Tim Henford

Registriert seit: 14. Sep 2006
169 Beiträge
 
#10

Re: DB Abgleich

  Alt 11. Sep 2007, 15:01
ok, danke dir.
Ein write Lock reicht ja schon, wenn die Sperrlistentabelle erstellt wird, nur darf der nicht gleichzeitig von 2 Usern kommen...das war mein Bedenken
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 20:53 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