以下のコードを書いて、実行したら(コンパイルはできてます)「xcancelの型がありません」が出てきました。いろいろと変えてみたのですが、コンパイルエラーになるか、実行時に「xcancelの型がありません」というエラーしか出てきません。もし原因がお分かりになる方がいましたら、教えていただけないでしょうか? テーブルの変数定義について、IDは数値型 NAMEはvarchar cancelはvarchar型です。
with query1 do
close;
sql.add('insert into tableA (ID, NAME, CANCEL)');
sql.add(' values (':xID, :xNAME, xCANCEL)');
parambyName('xID')asInteger := strtoint(editID.Text);
parambyName('xNAME')asString := editNAME.Text;
if checkboxA.Checked = true then
parambyName('xCancel')asString := '撤回'
else parambyNAME('xCancel')asString := '';
正確には「query1:項目'xcancel’の型がわかりません」というエラーメッセージです。
> sql.add(' values (':xID, :xNAME, xCANCEL)');
で、
xCANCELの前に、
:
がないのでは?
すみません。うち忘れです。実際は:xcancelとしています。
> if checkboxA.Checked = true then
> parambyName('xCancel')asString := '撤回'
> else parambyNAME('xCancel')asString := '';
asStringの前に
.
がないのでは?
あと、
> sql.add(' values (':xID, :xNAME, xCANCEL)');
と
>parambyNAME('xCancel')
で、
xCancelの大文字・小文字を合わせてみるとか・・・
なんども書きますが、SQL文とDelphiのエラーは分けて考えましょう。対処方法が違ってきます。
HOtaさん、今後気をつけたいと思います。
問題は解決しました。if文でcheckboxがfalseの時を指定していなかったことが理由でした。
つまり、if checkbox.checked = true then
処理
else 処理
で、問題が解決しました。
ありがとうございました。
ツイート | ![]() |