我做的一个工作是:
遍历一个txt文件,数据大概有三千条之多,然后一条一条的与数据库中的一个表里的信息的某个字段比较,数据库里的信息大概有5千多条。一次性比较完。
现在的问题是,当程序执行时,像无响应一样,而且进程中也是无响应的提示,但实际上是在运行着的。
如果能解决这个问题呢?
遍历一个txt文件,数据大概有三千条之多,然后一条一条的与数据库中的一个表里的信息的某个字段比较,数据库里的信息大概有5千多条。一次性比较完。
现在的问题是,当程序执行时,像无响应一样,而且进程中也是无响应的提示,但实际上是在运行着的。
如果能解决这个问题呢?
解决方案 »
- Delphi多层分布式架构下的数据库Delta批量提交
- DataSource奇怪问题!!!!
- 一台机器上能同时安装DELPHI和C++BUILDER吗?????????
- 請教delphi中adoquery的一個問題﹐﹐運行報錯.........
- 高分问一下存储过程中返回的值怎么显示在DataGrid里面?
- 关于控件安装的简单问题
- 怎么做才能使一个form窗体成为透明的?
- 大富翁怎么上不去啊
- 给定初始字符为“A”,数字为6,请问delphi中那个函数能生成“AAAAAA”?
- delphi的一本烂书,《delphi5企业级解决方案》,有看过此书有同感的进来。
- 时间范围查询语句怎么写
- 导入数据附加操作
var
ll:TStringList;
i:integer;
tempado:TAdoquery;
begin
ll:=TStringList.create;
tempado:=TAdoquery.Create(self);
try
tempado.ConnectionString:='...';
tempado.SQL:='...';
tempado.Open;
ll.LoadFromFile('c:\test.txt');
screen.Cursor:=crhourglass;
tempado.First;
while not tempado.Eof do
begin
application.ProcessMessages;
for i:=0 to ll.Count-1 do
begin
if tempado.FieldByName('aa').asstring=ll.Strings(i) then
begin
...
end;
end;
tempado.Next;
end;
finally
screen.Cursor:=crdefault;
tempado.Free;
ll.Free;
end;
end;说明:
1、用stringlist访问文件速度超快
2、数据集放在循环外面可大大提高速度你运行以上程序看是不是飞快,比你的程序快几十倍一点不奇怪
就可以了。
然后再考虑多线程,一般多线程也是很费资源的。
2、数据集放在循环外面可大大提高速度
你运行以上程序看是不是飞快,比你的程序快几十倍一点不奇怪
------------------------------------------------
的确,飞一般的感觉