接上面,DBGrid里的内容全部重新排序,如果数据量大一点,根本不知道我刚才修改的那条数据保存在哪里.如果新增某一条数据后,也是这样子.
怎样才能使我修改或是新增后,DBGrid所定位的记录还是我修改或是新增的那条记录??
怎样才能使我修改或是新增后,DBGrid所定位的记录还是我修改或是新增的那条记录??
解决方案 »
- 求助,如何在delphi中安装flatstyle控件
- 如何向正在打开或打开完毕的网页中插入并运行代码?
- 有没有在重庆用delphi的程序员,你们的月薪是多少?
- 如何获得右键菜单的相关信息?
- 连接数据库问题
- 如何批量执行存储过程里的增删改操作?
- 有没有人用过TDrawGrid 么在给定的cell里draw颜色呢?
- 一年前的这个时候第一次接触DELPHI,一年后的今天发布一个新软件,请大家帮助测试!谢谢~~~新年快乐!!!^_^
- Access violation at address 099D63DB in module 'dxPSCoreD7.bpl'
- 类的继承,封装,多态到底是什么意思???
- dbgrid问题
- 怎样删除一个数据库里两条完全一样的记录中的任意一条?sql server 2000的数据库。无关键字与主键。
var
point:integer;
begin
point := DBGrid1.DataSource.DataSet.fieldbyname('id').AsInteger;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from personnel_change where PersonId = ' + inttostr(PersonId));
ADOQuery1.Open;
ADOQuery1.Active := True;
end;
上面是一个主从表的查寻的,你可以稍改一下就可以实现你的功能了。
不过也可以用其它方法查询!
比如直接写查询SQL执行就OK了.
还有一种办法就是BookMark吧(书签)
---------
procedure TFormNewOrder.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin if ((State = [gdselected]) or (State = [gdselected,gdfocused])) then
begin
DBGrid1.Canvas.Brush.Color:=clOlive;
end; DBGrid1.Canvas.Pen.Mode:=pmMask;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
......
ADOQuery1.Open;
ADOQuery1.Active := True; //这一行是干嘛用的?
我用locate搞定了.