AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Gleichzeitigen Zugriff bei MSSQL auf einen Tupel verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Gleichzeitigen Zugriff bei MSSQL auf einen Tupel verhindern

Offene Frage von "pertzschc"
Ein Thema von Zottel · begonnen am 12. Okt 2004 · letzter Beitrag vom 21. Sep 2005
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#10

Re: Gleichzeitigen Zugriff bei MSSQL auf einen Tupel verhind

  Alt 21. Sep 2005, 16:38
Brauchst du vielleicht einen Generator ?
Ein Generator liefert einen eindeutigen Integerwert zurück.
Dabei wird sichergestellt, dass kein anderer Client den gleichen Wert erhalten kann.
MSSQL unterstützt von sich aus keine Generatoren (Firebird kann's aber
http://www.fingerbird.de/generatorgu...erators_stored );
diese lassen sich aber nachbauen.
Zuerst die Tabelle Generators:
SQL-Code:
CREATE TABLE [dbo].[Generators] (
   [IdGenerator] [varchar] (20) NOT NULL ,
   [CurrentValue] [int] NOT NULL
) ON [PRIMARY]
GO
Dann noch folgende SP:
SQL-Code:
Create procedure generator_id ( @IdGenerator varchar(20))
as
begin
      declare @ID integer

      SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
      BEGIN TRANSACTION SP_GEN_ID

      select @ID = CurrentValue from Generators where IdGenerator =@IdGenerator
      IF @@ERROR <> 0 GOTO LBL_ERROR
      update Generators set CurrentValue =CurrentValue + 1 where IdGenerator=@IdGenerator
      IF @@ERROR <> 0 GOTO LBL_ERROR

      COMMIT TRANSACTION SP_GEN_ID
      return @ID

LBL_ERROR:
      ROLLBACK TRANSACTION SP_GEN_ID
      return 0
end
Andreas
  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 20:29 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-2025 by Thomas Breitkreuz