AGB  ·  Datenschutz  ·  Impressum  







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

Sequentielle GUIDs erzeugen

Ein Thema von shmia · begonnen am 21. Jun 2010 · letzter Beitrag vom 21. Jun 2010
Antwort Antwort
shmia

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

Sequentielle GUIDs erzeugen

  Alt 21. Jun 2010, 10:31
Folgende Funktion erzeugt sequentielle GUIDs.
Während normale GUIDs eine quasi zufällige Folge bilden, sind sequentielle GUIDs die auf einem PC erzeugt wurden geordnet.

normale GUIDs (hexadezimal codiert)
Code:
CF739CDDB1582749B9E89752ED823C0E
29A77A8CC306D94E8CD0B9567DFD7B76
49F9E9E6B2A4B649A616CE96D3AD497F
9222BBBCC8057B4782D35E600D5F5805
sequentielle GUIDs
Code:
660E110911009511B1DF7AFC8491FD96
660E110911009511B1DF7AFC8491FD97
660E110911009511B1DF7AFC8491FD98
660E110911009511B1DF7AFC8491FD99
660E110911009511B1DF7AFC8491FD9A
Sequentielle GUIDs können als Primärschlüssel einer Tabelle eine bessere DB Leistung bringen als herkömmliche GUIDs.


Delphi-Quellcode:
type
   TUuidCreateSequential = function(out guid:TGUID):Integer; stdcall;
var
   _UuidCreateSequential : TUuidCreateSequential;

procedure CreateSequentialGuid(var guid: TGUID);
begin
   if not Assigned(_UuidCreateSequential) then
   begin
      _UuidCreateSequential := GetProcAddress(GetModuleHandle('rpcrt4.dll'), 'UuidCreateSequential');
   end;

   if Assigned(_UuidCreateSequential) then
   begin
      if _UuidCreateSequential(guid) <> 0 then
         OleCheck(CoCreateGuid(guid)); // Fallback auf Standard GUID
   end
   else
      OleCheck(CoCreateGuid(guid)); // Fallback auf Standard GUID
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Sequentielle GUIDs erzeugen

  Alt 21. Jun 2010, 10:47
Ergänzung: Läuft erst ab Windows 2000 (Für alle die noch sich noch mit Win9x/ME herumärgern müssen). Siehe MSDN
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 11:10 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