我的表中各有一个updatesql,query,datasource,dbgrid控件,updatesql控件是通过query的updateobject属性相连的,dbgrid的datasource连接到datasource控件上,datasource控件连接到query控件上,我现在分别写一个新增的代码和一个保存的代码如下:
procedure TForm1.Button1Click(Sender: TObject); //新增代码
begin
query1.Active:=true;
with query1 do
begin
append;
fieldbyname('a').asstring:=edit1.text;
fieldbyname('b').asstring:=edit2.text;
fieldbyname('c').asstring:=edit3.text;
end;
end;procedure TForm1.Button4Click(Sender: TObject); //保存代码
begin
query1.CommitUpdates;
query1.DisableConstraints;
end;
问题一:我的query1中的sql语句为
select * from veiwtest where b=:b and c=:c 我想在保存的同时,把有b,c两 栏相同的记录挑出来在dbgrid1中显示.但我现在这样不行,请问代码怎么改?
问题二:如果我要修改的时候,怎么修改啊
procedure TForm1.Button1Click(Sender: TObject); //新增代码
begin
query1.Active:=true;
with query1 do
begin
append;
fieldbyname('a').asstring:=edit1.text;
fieldbyname('b').asstring:=edit2.text;
fieldbyname('c').asstring:=edit3.text;
end;
end;procedure TForm1.Button4Click(Sender: TObject); //保存代码
begin
query1.CommitUpdates;
query1.DisableConstraints;
end;
问题一:我的query1中的sql语句为
select * from veiwtest where b=:b and c=:c 我想在保存的同时,把有b,c两 栏相同的记录挑出来在dbgrid1中显示.但我现在这样不行,请问代码怎么改?
问题二:如果我要修改的时候,怎么修改啊
with query1 do
begin
edit;
fieldbyname('a').asstring:=edit1.text;
fieldbyname('b').asstring:=edit2.text;
fieldbyname('c').asstring:=edit3.text; end;
只要我一提交就会出错,说什么"update failed"
还有删除的时候也是这样,请问怎么解决这个修改和删除保存的时候出错的问题?
if DataBase1.InTransaction then DataBase1.Rollback;
DataBase1.StartTransaction;
try
begin
Query1.ApplyUpdates; //
end;
DataBase1.Commit;
except
Application.MessageBox('保存数据时出错!', '数据库错误', MB_OK+MB_ICONERROR);
DataBase1.Rollback;
Exit;
end;
个人看法