在DBGrid中用Query怎样删除当前记录?(50分)

  • 主题发起人 主题发起人 thender
  • 开始时间 开始时间
T

thender

Unregistered / Unconfirmed
GUEST, unregistred user!
begin
IF MessageDlg('真的要删除这一行记录吗?',mtInformation,[mbok,mbcancel],0)=mrok then
with Query1 do
begin
close;
SQL.Clear;
SQL.Add('Delete from "user.DB" where 编号= ');//此行未写完
//各位大哥,请问我要删除当前记录,该在 编号= 后写入什么代码??
ExecSQL;
Close;
SQL.Clear;
SQL.Add('select * from "User.db"');
Query1.open;
end;
end;
 
with Query1 do
begin
str=FieldByName("编号").AsString;
close;
SQL.Clear;
SQL.Add('Delete from "user.DB" where 编号= '+str);
 
用楼上的方法可以,操作前先DisableControls,操作完成后EnableControls
 
补充sunwb的答复:
SQL.Add('Delete from "user.DB" where 编号= '+#39+str+#39);
 
IF MessageDlg('真的要删除这一行记录吗?',mtInformation,[mbok,mbcancel],0)=mrok then
with Query1 do
begin
delete;
end;
 
IF MessageDlg('真的要删除这一行记录吗?',mtInformation,[mbok,mbcancel],0)=mrok then
Query1.delete;
 
按照sunwb方法可以,但是要注意中文字段的问题,可以采用“表名."字段名"”的形式访问
中文字段!
 
按照ugvanxk的方法,程序提示“table is read only”,怎么回事?
 
可以这样试试:
IF MessageDlg('真的要删除这一行记录吗?',mtInformation,[mbok,mbcancel],0)=mrok then
with Query1 do
begin
edit;
delete;
post;
end;


 
呵呵,谢谢各位的帮忙,sunwb的方法我试过了,:(不行。但是这样写就对了:
SQL.Add('Delete from "user.DB" where 编号= "'+str+'"');
ugvanxk的方法在Table里面可以用delete删除当前记录,但是在query里delete好象是删
除整个表的记录的吧?我试过了,可能是我的query的某个属性还没设好,提示我:
“table is read only”,没试成功
 
>>可能是我的query的某个属性还没设好
对了! 再仔细找找!
 
IF MessageDlg('真的要删除这一行记录吗?',mtInformation,[mbok,mbcancel],0)=mrok then
Query1.delete;
不过要把RequestLive改为True才行

 
行了.不过就这么多分了,都给大家了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部