comboboxの内容をDBへ反映

解決


mimi  2010-01-16 12:55:27  No: 37045  IP: 192.*.*.*

こんにちわ。comboboxで作成した内容(たとえば、性別の男・女)を変えずにDBのテーブルをupdateしたいのですが、どうしても数字の2が入ってしまいます。どなたか理由お分かりになる方いますか?(バージョンはdelphi5以降で)

まずstring型変数に、
s_combobox := .items[combobox.itemindex];

with query1 do
  begin
   close;
   sql.add('update TTable set gender = :value);
   prepare;
   params[0].Asstring := s_combobox;
   execsql
  end;

これで、実行するとdelphiのフォーム上のcomboboxで「男」または「女」を選択しても、数字の2がstring型でTTableにupdateされてしまします。

編集 削除
igy  2010-01-16 15:11:07  No: 37046  IP: 192.*.*.*

>  params[0].Asstring := s_combobox;

このとき、s_combobox の値を
ShowMessageとかで確認してみると、何が格納されてますか?

編集 削除
mimi  2010-01-17 11:16:33  No: 37047  IP: 192.*.*.*

showmessageでs_comboboxの内容を表示させたのですが、
空メッセージが表示されました。

ちなみに、comboboxからの値をデータベースのTABLEへ
代入する書き方としては、どこか間違っているところはありますか?

編集 削除
HOta  2010-01-17 12:51:56  No: 37048  IP: 192.*.*.*

>s_combobox := .items[combobox.itemindex];
の後ろにshowmessageで確認してください。

>   params[0].Asstring := s_combobox;
   params[0].Asstring := combobox.text;
でも良いですよ。

編集 削除
mimi  2010-01-25 05:38:38  No: 37049  IP: 192.*.*.*

HOtaさんのやり方で、望んでいた処理ができました。ありがとうございました。

編集 削除