2010-12-14 12 views
1

userIdがSybaseデータベースのuniqueidentifier型であるuserテーブルがあります。入力する値は、C#アプリケーションのGUID値です。 Sybaseツールを使用してテーブルを見ると、値は3835FD60-ACDE-4345-99AB-54263E9A07AEと表示されます。そのフィールドをテキストファイルにコピー/ペーストすると、0x3835fd60acde434599ab54263e9a07aeと表示されます。 odbc(pythonで)を使ってそのフィールドにアクセスすると、(Hex)文字列が 3835FD60ACDE434599AB54263E9A07AEとして生成されます。GUID uniqueidentifierの値が少し異なる理由

なぜ異なって表示されますか? ありがとう

答えて

8

Guidは単なるバイトのセットです。それは文字列ではありません。整数123と同じは文字列 "123"ではありません。人間が読める文字列として表示するにはさまざまな方法があります。 Guid.ToString(string)の書式指定子を使用して書式を選択することができます。http://msdn.microsoft.com/en-us/library/97af8hh4.aspx

単純に:彼らは異なる書式を使用することを選択しました。ガイドは同じです。

1

通常、UUID/GUID値は128ビット整数として格納されるため、表示形式はすべて有効です。 UUIDまたはGUIDを参照しているときに使用していたフォーマット済みの表示は、その128ビット整数を便利な文字列形式に変換するだけです。

Pythonでは、通常の方法でフォーマットできるUUIDオブジェクトを取得するために、値をuuid.UUIDクラスに渡すことができます。

関連する問題