如何对大表添加记录?(100分)

  • 主题发起人 主题发起人 raiseye
  • 开始时间 开始时间
R

raiseye

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用ADOQUERY 、DBGrid和edit对一个有10万条记录的表进行添加记录,用edit填写记录的值,dbgrid显示记录,但是,用ADOQUERY 连接数据库时对于这么多的记录会浪费掉大量的计算机资源,同时也希望DBGRID显示的不是表的全部记录,而是刚刚添加的记录?该怎么做?请各位手明确指点,谢!
 
TClientDataSET可以当内存表使用。
 
如果用插入的话,一般的插入,记录都会在最后一条
可以用SQL语句:
Begin
Close;
SQL.clear;
SQL.add('Select * From TableName Where 字段 :=a');
Parameters.parambyname('a').values := Edit1.text;
end;
你可以让这个Edit不显示,然后让他等于ADOQuery1.Last最后一条记录!
 
如果你的表中有自增ID或记录添加时间之类的字段,你就可以这样


SELECT TOP 1 *
FROM jobs
ORDER BY job_id DESC

这样就只把最后一条记录显示出来了!
 
[:D]记得给分啊!
 
我的意思是:比如打开一个窗口进行添加记录,在这个窗回关掉之前无论添加多少条记录DBGRID所显示的就是刚刚添加的记录。也就是我每次在每个EDIT里填完各字段值后一点击保存就可以在DBGRID里看到这条刚添加的记录,保存10条就看到有10条,但不会看到以前(添加窗口打开之前)的记录。
要实现,我是不是要建一个临时表啊?
 
9607gfg
"ORDER BY job_id DESC"你知道这(ORDER BY) 对于有10万条记录的表来讲意味着什么吗?而且不是我想要的答案。
lifangchao2008的SQL.add('Select * From TableName Where 字段 :=a');倒是提醒了我。
谢谢大家,希望有更好的答案,主要是省源,方便查看新添加的记录
 

Similar threads

D
回复
0
查看
793
DelphiTeacher的专栏
D
D
回复
0
查看
829
DelphiTeacher的专栏
D
D
回复
0
查看
660
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部