すべての数値フィールド (smallint、decimal など) を 0 (ゼロ) に初期化し、テーブル内の他のフィールドをスペースに初期化するルーチンを ESQL/C で作成するにはどうすればよいですか?
1 に答える
IIUG ( International Informix Users Group ) メーリング リストの 1 つでこの質問をしたところ、回答がありました。
今朝返信したときに述べたように、言及していないタイプのいくつかについてはかなり慎重に考える必要があります。DATE をゼロにすると、1899-12-31 に設定されます。INTERVAL をゼロにすることは理にかなっています (ただし、すべてのバイトをゼロに設定することではありません。同様のコメントが DECIMAL と MONEY および関連する型に適用されます)。DATETIME をゼロにすると、無効な値が生成されます。また、BYTE、TEXT、BLOB、CLOB には個別の問題があります。
文字フィールドをスペースに設定するのは簡単です。さまざまな種類の整数フィールドをゼロに設定することも簡単です。
Art Kagel のutils2_ak
パッケージまたは私の SQLCMD パッケージのコードを見ることができます。どちらも IIUG Software Archive から入手できます。遭遇する可能性が高い多くの状況をカバーするコードがあります。
それらが役に立たない場合は、問題が発生しているコードを示し、何が起こっているのか、何をしたいのか、(適切な場合) 問題の発生を妨げているメッセージを説明する必要があります。