チェックボックスの処理

解決


りな  2010-02-03 08:06:07  No: 37402

以下のコードを書いて、実行したら(コンパイルはできてます)「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 := '';


りな  2010-02-03 08:07:54  No: 37403

正確には「query1:項目'xcancel’の型がわかりません」というエラーメッセージです。


igy  2010-02-03 09:08:12  No: 37404

>  sql.add(' values (':xID, :xNAME, xCANCEL)');
で、
xCANCELの前に、
  :
がないのでは?


りな  2010-02-03 09:13:08  No: 37405

すみません。うち忘れです。実際は:xcancelとしています。


igy  2010-02-03 09:20:07  No: 37406

> if checkboxA.Checked = true then
>     parambyName('xCancel')asString := '撤回'
>   else  parambyNAME('xCancel')asString := '';

asStringの前に
  .
がないのでは?


igy  2010-02-03 09:38:36  No: 37407

あと、
> sql.add(' values (':xID, :xNAME, xCANCEL)');

>parambyNAME('xCancel')
で、
xCancelの大文字・小文字を合わせてみるとか・・・


HOta  2010-02-04 06:19:01  No: 37408

なんども書きますが、SQL文とDelphiのエラーは分けて考えましょう。対処方法が違ってきます。


りな  2010-02-04 07:56:05  No: 37409

HOtaさん、今後気をつけたいと思います。

問題は解決しました。if文でcheckboxがfalseの時を指定していなかったことが理由でした。

つまり、if checkbox.checked = true then
         処理
        else 処理

で、問題が解決しました。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加