Hallo zusammen,
habe folgendes Problem. Eine Delphi-Routine führt auf der Datenbank (MSSQl2000) ein paar Updates, Deletes usw. durch, welche in einer Transaktion ablaufen. Das Programm soll Netzwerkfähg sein, und die Routine kann von mehreren Clients aus gestartet werden. Es kommt aber immer zu Überschneidungen mit andern Clients, da natürlich in den selben Tabellen gearbeitet wird. Ich möchte nun diese Transaktion als ilSerializable ablaufen lassen. Hatte schon mal ein ähnliches Problem, da konnte ich es damit lösen, allerdings nicht mit Delphi. Ich habe alle Updates,Deletes und inserts in eine Stored Procedure gegeben, dort drinnen SET TRANSACTION ISOLATION LEVEL SERIALIZABLE gesetzt, und am schuss wieder zuwückgesetzt. Damit war dort das Problem erledigt. Hier ist es mir aber schwer möglich alles in eine Stored Procedure zu stecken, weil die berechnung doch etwas komplexer ist, und ich Daten brauche, welche ich nicht so direkt zur Hand habe. Ich habe nun versucht mit Delphi über AdoConnection.IsolationLevel:= ilSerializable und anschliessendes wieder zurücksetzem die Serialisierbarkeit einzustellen. Ohne Erfolg. Nun möchte ich nur wissen - kann man das überhaupt über Delphi handeln, oder soll ich es (wenn überhaupt möglich) schauen in eine Stored Procedure zu verlegen.
Bin dankbar für jede Hilfe
Astner Klaus
habe folgendes Problem. Eine Delphi-Routine führt auf der Datenbank (MSSQl2000) ein paar Updates, Deletes usw. durch, welche in einer Transaktion ablaufen. Das Programm soll Netzwerkfähg sein, und die Routine kann von mehreren Clients aus gestartet werden. Es kommt aber immer zu Überschneidungen mit andern Clients, da natürlich in den selben Tabellen gearbeitet wird. Ich möchte nun diese Transaktion als ilSerializable ablaufen lassen. Hatte schon mal ein ähnliches Problem, da konnte ich es damit lösen, allerdings nicht mit Delphi. Ich habe alle Updates,Deletes und inserts in eine Stored Procedure gegeben, dort drinnen SET TRANSACTION ISOLATION LEVEL SERIALIZABLE gesetzt, und am schuss wieder zuwückgesetzt. Damit war dort das Problem erledigt. Hier ist es mir aber schwer möglich alles in eine Stored Procedure zu stecken, weil die berechnung doch etwas komplexer ist, und ich Daten brauche, welche ich nicht so direkt zur Hand habe. Ich habe nun versucht mit Delphi über AdoConnection.IsolationLevel:= ilSerializable und anschliessendes wieder zurücksetzem die Serialisierbarkeit einzustellen. Ohne Erfolg. Nun möchte ich nur wissen - kann man das überhaupt über Delphi handeln, oder soll ich es (wenn überhaupt möglich) schauen in eine Stored Procedure zu verlegen.
Bin dankbar für jede Hilfe
Astner Klaus
Comment