我用的是Query控件,为何在修改记录时总会出显数据表不能修改
其中query_user1.RequestLive:=true;var
zmoney : currency;
begin
with mdb do begin
query_user1.Close;
query_user1.SQL.Clear;
query_user1.SQL.Text :='select H_card,H_money from H_user';
query_user1.Open;
query_user1.Edit;
if query_user1.Locate('H_card',card,[])=true then
begin
zmoney:=query_user1.FieldByName('H_money').AsCurrency-mymoney;//mymoney为全局变量
if query_user1.Modified then
begin
query_user1.FieldByName('H_money').Value :=zmoney;
query_user1.Post;
application.MessageBox('数据修改完毕','',0);
query_user.Close;
query_user.SQL.Clear;
query_user.SQL.Text :='select H_card,h_name,h_dj,h_sex,h_depart,h_money from H_user';
query_user.Open;
end
else
begin
application.MessageBox('对不起,数据表不能被修改?','错误',0);
end;
end
else
begin
application.MessageBox('请确定该用户存不存在?','错误',0);
exit;
end;
query_user1.Close;
end;
end;
其中query_user1.RequestLive:=true;var
zmoney : currency;
begin
with mdb do begin
query_user1.Close;
query_user1.SQL.Clear;
query_user1.SQL.Text :='select H_card,H_money from H_user';
query_user1.Open;
query_user1.Edit;
if query_user1.Locate('H_card',card,[])=true then
begin
zmoney:=query_user1.FieldByName('H_money').AsCurrency-mymoney;//mymoney为全局变量
if query_user1.Modified then
begin
query_user1.FieldByName('H_money').Value :=zmoney;
query_user1.Post;
application.MessageBox('数据修改完毕','',0);
query_user.Close;
query_user.SQL.Clear;
query_user.SQL.Text :='select H_card,h_name,h_dj,h_sex,h_depart,h_money from H_user';
query_user.Open;
end
else
begin
application.MessageBox('对不起,数据表不能被修改?','错误',0);
end;
end
else
begin
application.MessageBox('请确定该用户存不存在?','错误',0);
exit;
end;
query_user1.Close;
end;
end;
query_user1.FieldByName('H_money').Value :=zmoney;
query_user1.Post;
這樣比較好!
還有一個參數要設置!!
query_user1.RequestLive:=true;
query1.RequestLive:=true;
query_user1.Open;
query_user1.Edit;//这个Edit方法没有用,因为下面的Locate会执行Post操作。
if query_user1.Locate('H_card',card,[])=true then