X
xuzhic2001
Unregistered / Unconfirmed
GUEST, unregistred user!
我的数据表里面有一个字段类型为bit,我在dbgrideh里面给该字段设置为checkbox的显示形式,当一条记录的该字段的checkbox选中时,在该字段的update事件里该字段对应的数据表值改为1,没有选中的时候改为0
程序如下
procedure TFrmain.DBGrideh1Columns18UpdateData(Sender: TObject;
var Text: String; var Value: Variant; var UseText, Handled: Boolean);
var str:string;
begin
IF dbgrideh1.Columns[0].Checkboxes=true then
str:=inttostr(1)
else
str:=inttostr(0);
with queryall do
begin
close;
sql.Clear;
sql.Add('update 素材参数 set 显示='''+str+''' where 素材名称id='''+querycs.fieldbyname('素材名称ID').AsString+'''');
execsql;
end;
end;
可现在出现了问题,当checkbox已经选中的时候,点击checkbox想把勾给去掉,可是这是执行的还是str:=inttostr(1)语句,也就是说这个DBGrideh1Columns18UpdateData过程发生在checkbox内容改变以前,不知道这个问题应该怎么解决
程序如下
procedure TFrmain.DBGrideh1Columns18UpdateData(Sender: TObject;
var Text: String; var Value: Variant; var UseText, Handled: Boolean);
var str:string;
begin
IF dbgrideh1.Columns[0].Checkboxes=true then
str:=inttostr(1)
else
str:=inttostr(0);
with queryall do
begin
close;
sql.Clear;
sql.Add('update 素材参数 set 显示='''+str+''' where 素材名称id='''+querycs.fieldbyname('素材名称ID').AsString+'''');
execsql;
end;
end;
可现在出现了问题,当checkbox已经选中的时候,点击checkbox想把勾给去掉,可是这是执行的还是str:=inttostr(1)语句,也就是说这个DBGrideh1Columns18UpdateData过程发生在checkbox内容改变以前,不知道这个问题应该怎么解决