我用dbgrid来显示数据,用的是query.
我想实现:当鼠标右键单击时,在菜单中有"删除全部"和"删除该记录".
删除全部可以:
begin
try
query1.Close;
query1.SQL.Clear;
query1.SQL.add('delete from gz_xz');
query1.execsql;
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select * from gz_xz');
query1.open;
showmessage('删除成功!');
except
showmessage('删除失败');
end;
end;
但删除选择的那条怎么定位?
我想实现:当鼠标右键单击时,在菜单中有"删除全部"和"删除该记录".
删除全部可以:
begin
try
query1.Close;
query1.SQL.Clear;
query1.SQL.add('delete from gz_xz');
query1.execsql;
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select * from gz_xz');
query1.open;
showmessage('删除成功!');
except
showmessage('删除失败');
end;
end;
但删除选择的那条怎么定位?
解决方案 »
- 波特率为9600的串口,1秒钟最多能接收多少数据,这个是怎么计算的呢?
- 没有Canvas的控件上如何画图写字?
- 在filelistbox中如何将文件的后缀名去掉
- 我的程序需要调用很多图片,但我不想用LoadFromFile等直接读文件,怎么办?
- 有没有那里可以下载比较完整的api中文的说明和delphi的函数说明?
- 还是一个dll内部变量的问题。
- 有什么函数读取系统时间?
- 数据库密码操作
- 将一个窗体赋予一个窗体变量后,当窗体FREE后,这个窗体变量会发生如何的改变???如何通过这个窗体变量得到窗体已经FREE了?
- PackTable DBF表的问题!
- 学delphi一段时间了,感觉一点不知道,郁闷,请高手指点!
- 关于DBGrid一次选取多行进行操作的问题
query1.sql.close;
query1.sql.clear;
query1.sql.add('delete from gz_xz');
query1.sql.add('where fkey = '+DBGrid1.DataSource.DataSet.FieldByName('fkey').AsString);
qquery1.execsql;
query1.Close;
query1.SQL.Clear;
query1.SQL.add('select * from gz_xz');
query1.open;
showmessage('删除成功!');
except
showmessage('删除失败');
end;
end;
应该可以了,
只要找出关键字,就写一个条件删除即可~
query1的当前记录就是dbgrid中被选中的那条
如下:
在删除之前保留下一条记录的关键字
然后在删除刷新之后就
DBGrid1.DataSource.DataSet.Locate(keyfields,keyvalues,[]);
或
query1.Locate(keyfields,keyvalues,[]);
(~中括号是空的)
query1.sql.clear;
query1.sql.add('delete from gz_xz');
query1.sql.add('where C1= '+DBGrid1.DataSource.DataSet.FieldByName('C1').AsString);
query1.execsql;
这样写还是不对啊
query1.sql.close;
query1.sql.clear;
query1.sql.add('delete from gz_xz');
query1.sql.add('where C1= '''+DBGrid1.DataSource.DataSet.FieldByName('C1').AsString+'''');
query1.execsql;
谢谢各位的支持和帮助!!可我的dbgrid中的title改了运行的时候还是数据库中的字段名?
--------当然还是数据库中的字段名,你只是该了它的显示标题,字段名是不可以修改的,除非你在
sql语句中用 as 将它该名。
with dbgrid.DataSet do
begin
first;
while not eof do
delete;
post;
end;删除该记录
with dbgrid.DataSet do
begin
delete;
post;
end;
回复人: qdmis22(yhy) ( ) 信誉:100 2004-09-21 13:31:00 得分: 0
谢谢各位的支持和帮助!!可我的dbgrid中的title改了运行的时候还是数据库中的字段名?
--------当然还是数据库中的字段名,你只是该了它的显示标题,字段名是不可以修改的,除非你在
sql语句中用 as 将它该名。
--------------这句话有错。后面的除非是没有道理的,字段名是不可以修改的。