私はCで次のコードを書きました:
EXEC SQL begin declare section;
int A;
char B[5];
int C;
int D;
dtime_t E;
char F[13];
EXEC SQL END DECLARE SECTION;
char E_dt[16];
D=0;
memset(F, 0, sizeof(F));
EXEC SQL declare log3 cursor for select A, B, C, D, E, F from tbl WHERE C=123;
if(sqlca.sqlcode)
{
return;
}
EXEC SQL fetch log3
into
:A, :B, :C, :D, :E, :F,
if(sqlca.sqlcode)
{
if (sqlca.sqlcode != DB_NORECORDS)
{
return;
}
break;
}
このコードを実行すると、テーブル tbl で F の値が Null になります。エラー コード 1405 が表示されます。デフォルト値を 0 に設定する memset 関数を試しましたが、うまくいきませんでした。もう 1 つ、一度に 90 を超えるフィールドを取得できます。これを実行しようとすると、コンパイル時にバス エラーが発生します。よろしくお願いします。