Endianness bei GUIDs?

07/07/2008 - 02:04 von Christoph Schneegans | Report spam
Hallo allerseits!

Ich versuche gerade, Daten aus dem Outlook Business Contact Manager nach
CRM 4.0 zu migrieren, vgl. <news:6d1vglFeiegU1@mid.individual.net>. Der
BCM speichert dabei seine Daten teilweise auf dem Exchange-Server,
teilweise in einer SQL-Server-Datenbank. Die Verknüpfung wird
dabei offenbar über GUIDs hergestellt. Ich bin verwirrt, weil dieselbe
GUID in der Datenbank bspw. in der Repràsentation

69E29176 4AA9 654B B5E6271574503203

gespeichert wird, hingegen als

7691E269 A94A 4B65 B5E6271574503203

in Exchange. (Die Leerzeichen habe ich nur zur besseren Lesbarkeit
eingefügt.) Man sieht, daß alle Bytes, d.h. jeweils zwei
Hexadezimalziffern, in beiden Repràsentationen vorkommen. Die
Reihenfolge der Bytes ist aber eine völlig andere.

Gibt es bei GUIDs vielleicht mehrere mögliche Repràsentationen?

<http://schneegans.de/usenet/mid-schreibweisen/> · Postings verlinken
 

Lesen sie die antworten

#1 Elmar Boye
07/07/2008 - 13:32 | Warnen spam
Hallo Christoph,

Christoph Schneegans schrieb:
Ich versuche gerade, Daten aus dem Outlook Business Contact Manager nach
CRM 4.0 zu migrieren, vgl. <news:. Der
BCM speichert dabei seine Daten teilweise auf dem Exchange-Server,
teilweise in einer SQL-Server-Datenbank. Die Verknüpfung wird
dabei offenbar über GUIDs hergestellt. Ich bin verwirrt, weil dieselbe
GUID in der Datenbank bspw. in der Repràsentation

69E29176 4AA9 654B B5E6271574503203

gespeichert wird, hingegen als

7691E269 A94A 4B65 B5E6271574503203

in Exchange. (Die Leerzeichen habe ich nur zur besseren Lesbarkeit
eingefügt.) Man sieht, daß alle Bytes, d.h. jeweils zwei
Hexadezimalziffern, in beiden Repràsentationen vorkommen. Die
Reihenfolge der Bytes ist aber eine völlig andere.

Gibt es bei GUIDs vielleicht mehrere mögliche Repràsentationen?



Ja. Je nachdem welche Darstellungsform man wàhlt.
Intern setzt sich eine Guid aus mehreren Teilen zusammen:
<URL:http://msdn.microsoft.com/en-us/library/aa373931(VS.85).aspx>
auch System.Guid ist intern so aufgebaut.

Und die üblicherweise mit "-" verwendete Darstellung ist sàhe binàr
dargestellt wie das zweite Format aus:
SELECT CAST('69E29176-4AA9-654B-B5E6-271574503203' as uniqueidentifier),
CAST(CAST('69E29176-4AA9-654B-B5E6-271574503203' as uniqueidentifier) AS binary(16))

und so kannst Du die Daten ggf. ans eine oder andere System weiterreichen.

Gruß Elmar

Ähnliche fragen