从SQL SERVER里读数据到ACCESS里,但有3万多条,速度太慢,怎么解决??
从SQL SERVER里读数据到ACCESS里,但有3万多条,速度太慢,怎么解决??
楼主zhuzhuer(zhuzhuer)2002-05-14 15:03:18 在 Delphi / VCL组件开发及应用 提问我程序里要读数据,是从SQL SERVER里读到ACCESS里,但有3万多条,所以速度很慢,怎么解决??可以提高速度,而且数据量大以后,读数据过程中 很容易死机怎么解决??? 问题点数:100、回复次数:14Top
1 楼luoshumeng(乡村意外)回复于 2002-05-14 15:08:26 得分 0
把ACCESS表导到SQL SERVER中去呀!!!!!Top
2 楼zhuzhuer(zhuzhuer)回复于 2002-05-14 15:11:57 得分 0
必须用程序进行,不可以人工导入,因为我有判断条件的Top
3 楼zjj_horse(抽烟的鱼)回复于 2002-05-14 15:12:21 得分 15
关注。Top
4 楼fyje(云中仙)回复于 2002-05-14 15:13:15 得分 10
使用SQL语句
select * from sqlserver表名 where 条件 into access表名,会很快的Top
5 楼dreamfan(改行不做程序员,回家种地。)回复于 2002-05-14 15:19:05 得分 5
学习Top
6 楼zhuzhuer(zhuzhuer)回复于 2002-05-14 15:30:27 得分 0
select * from sqlserver表名 where 条件 into access表名
这种方法必须数据库的字段和结构相同吧,我的字段不同,只要读其中一部分,还有一部分是自己的值给进去的,Top
7 楼zhuzhuer(zhuzhuer)回复于 2002-05-14 15:33:29 得分 0
如果是一次读出,分几次写进去,具体如何操作 ,这样是不是很能提高速度Top
8 楼redbirdli(火鸟)回复于 2002-05-14 15:33:55 得分 10
BDE中的Batchmove就可以Top
9 楼zhuzhuer(zhuzhuer)回复于 2002-05-14 15:38:07 得分 0
读数据代码如下,怎么改进,谢谢
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add("select * from "+temp1+"");
adoquery2.Open;
adoquery2.First;
while not adoquery2.Eof do
begin
adoquery3.close;
adoquery3.sql.clear;
adoquery3.sql.add("insert into lsyswt(invdate,ininvno,gname,cname,invno,saamount,ytsl,wtsl,saprice) values(:invdate,:ininvno,:gname,:cname,:invno,:saamount,:ytsl,:wtsl,:saprice)");
with adoquery3.parameters do
begin
parambyname("invdate").value:=adoquery2.fieldbyname("invdate").value;
parambyname("ininvno").value:=adoquery2.fieldbyname("ininvno").value;
parambyname("gname").value:=adoquery2.fieldbyname("bogusname").value;
parambyname("cname").value:=adoquery2.fieldbyname("bogusclient").value;
parambyname("invno").value:=adoquery2.fieldbyname("invno").value;
parambyname("saamount").value:=adoquery2.fieldbyname("saamount").value;
parambyname("ytsl").value:=0;
parambyname("wtsl").value:=adoquery2.fieldbyname("saamount").value;
parambyname("saprice").value:=adoquery2.fieldbyname("saprice").value;
end;
adoquery3.ExecSQL;
adoquery2.Next;
end;Top
10 楼redbirdli(火鸟)回复于 2002-05-14 15:39:31 得分 0
BDE中的Batchmove就可以Top
11 楼andyting(andyting)回复于 2002-05-14 16:01:46 得分 0
select * from sqlserver表名 where 条件 into access表名Top
12 楼zhuzhuer(zhuzhuer)回复于 2002-05-14 16:01:48 得分 0
我这里的 TEMP1是SQL SERBER里的数据库表,lsyswt 是ACCESS里的数据库表
放到一个临时文件文件里面
用bcp命令复制到SQL SERVER 中,
而不需要象你写的这样子,那应该怎么写????
Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
