大家好,请教一下,把dbgrideh中的checkbox全部编辑
数据源是adoquery,是通过几个表查询出的数据,里面有个BIT类型的字段,我在界面上用了一个CheckBox控件,想用这个CheckBox控制所有dbgrideh中的checkbox,下面是我的代码: while not S1Query1.Eof do
begin
S1Query1.Edit;
S1Query1.FieldValues['state']:=CheckBox1.Checked;
S1Query1.Post;
S1Query1.Next;
end;
错误提示说没有更新的键列消息,我查了一下知道是多表查询时不能用post,请问大家怎样才能把多表查询出来的BIT类型的字段用CheckBox控制!
数据源是adoquery,是通过几个表查询出的数据,里面有个BIT类型的字段,我在界面上用了一个CheckBox控件,想用这个CheckBox控制所有dbgrideh中的checkbox,下面是我的代码: while not S1Query1.Eof do
begin
S1Query1.Edit;
S1Query1.FieldValues['state']:=CheckBox1.Checked;
S1Query1.Post;
S1Query1.Next;
end;
错误提示说没有更新的键列消息,我查了一下知道是多表查询时不能用post,请问大家怎样才能把多表查询出来的BIT类型的字段用CheckBox控制!
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin if DBGridEh1.RowCount>0 then begin
DBGridEh1.SelectedRows.SelectAll;{全选}
with ADOQuery1 begin
DisableControls;
for i :=0 to DBGridEh1.SelectedRows.Count-1 do begin
GotoBook(pointer(DBGridEh1.SelectedRows.Items[i]));
edit;
FieldValues['state']:=CheckBox1.Checked;
post;
end;
EnableControls;
end;
DBGridEh1.SelectedRows.Clear;{取消全选}
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin if DBGridEh1.RowCount>0 then begin
DBGridEh1.SelectedRows.SelectAll;{全选}
with S1Query1 begin
DisableControls;
for i :=0 to DBGridEh1.SelectedRows.Count-1 do begin
GotoBook(pointer(DBGridEh1.SelectedRows.Items[i]));
edit;
FieldValues['state']:=CheckBox1.Checked;
post;
end;
EnableControls;
end;
DBGridEh1.SelectedRows.Clear;{取消全选}
end;
end;