Tips

Problems compiling when assigning a Time field into a Longint array

日付2003/05/23
ID27668 (英語原文参照)
バージョン6.8.x and 2003
プラットフォームMac & Win

タイトル
U.S)Problems compiling when assigning a Time field into a Longint array
JP)時間フィールドに倍長整数配列を割り当てたときのコンパイル問題

時間フィールドを処理するとき、それらの内容を配列の中に保存したいときがあります。既にご存知かもしれませんが、時間タイプの配列はありません。よって、以下に記述されているように、倍長整数配列を使うとします。

ARRAY LONGINT(MyArray;3)
ALL RECORDS([Table 1])
For ($i;1;Records in selection([Table 1]))
LOAD RECORD([Table 1])
MyArray{$i}:=[Table 1]Field2
UNLOAD RECORD([Table 1])
NEXT RECORD([Table 1])
End for

インタプリタモードでは正常に機能しますが、コンパイルしたときにエラーが発生してしまいます。
問題の箇所は、以下のように時間または日付けタイプの値を倍長整数配列に割り当てたためです。

MyArray{$i}:=[Table 1]Field2

この問題を修正するには、その値を倍長整数に変換するために単にフィールド値に1をかけます。

MyArray{$i}:=[Table 1]Field2*1

この修正が完了すれば、コードは適切にコンパイルされます。