Tips

ベンダーによって異なるUUIDのフォーマット

日付2011/11/01
ID76400 (英語原文参照)
バージョンv12
プラットフォームMac/Win

Microsoft SQL Serverのような外部データベースにレコードを作成する場合,UUIDの形式はベンダーによって異なるので注意が必要です。

たとえば,Microsoft SQL Serverでは,FA72EEA3814DF7469E976400534D78EAではなく,FA72EEA3-814D-F746-9E97-6400534D78EAという形式に揃っていなければなりません。この違いは,下記のように文字列のUUIDを変換することで解消できます。

C_TEXT(sqluiid;mssqluiid)

sqluiid:=Generate UUID

mssqluiid:=Substring(sqluiid;1;8)+"e;-"e;+Substring(sqluiid;9;4)+"e;-"e;+Substring(sqluiid;13;4)+"e;-"e;+Substring(sqluiid;17;4)+"e;-"e;+Substring(sqluiid;21;12)

SQL LOGIN("e;ODBC:mssql"e;;"e;user"e;;"e;pass"e;;*)

Begin SQL
INSERT INTO sales (uuid,a,b,c)
VALUES (:mssqluiid,:param2,:param3,:param4);
End SQL

SQL LOGOUT

いずれにしても,データベースの仕様を確認し,UUIDを適切なフォーマットに変換することが大切です。