ベンダーによって異なるUUIDのフォーマット
日付 | 2011/11/01 |
---|---|
ID | 76400 (英語原文参照) |
バージョン | 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を適切なフォーマットに変換することが大切です。