UnicodeモードのC_STRINGの長さ
日付 | 2008/07/31 |
---|---|
ID | 49919 (英語原文参照) |
バージョン | 11 |
プラットフォーム | Mac & Win |
日本語環境では4D v11 SQLのUnicodeモードは必須です。このUnicodeモードでは、C_STRINGはC_TEXTと等価であり、C_STRINGで定義した変数の大きさは無視されます。
例えば次のように、全く同じコードでも異なる結果になります。
4D 2004
C_STRING(1;$var) $varSize:=Length($var) `$varSize = 0 $var:="1234567890" `$var = 1 $varSize:=Length($var) `$varSize = 1
4D 2004では、C_STRINGによって定義された変数は、定義された大きさを超えた長さの文字列になることはありません。
4D v11 SQL
C_STRING(1;$var) $varSize:=Length($var) `$varSize = 0 $var:="1234567890" `$var = 1 $varSize:=Length($var) `$varSize = 10
4D v11 SQLでは、C_STRINGで定義された大きさに関係なく、変数の中に文字列がそのまま収まります。
こうした問題を回避する方法としてUnicodeモードを使わないという選択もありますが、その場合、日本語を取り扱うことができなくなってしまいます。日本語環境では、こうした動作の違いを対策された上で、Unicodeモードをご利用ください。