tempad
Readygo技术搜索引擎 >>ASP技术 >> 从SQL SERVER里读数据到ACCESS里,但有3万多条,速度太慢,怎么解决??

从SQL SERVER里读数据到ACCESS里,但有3万多条,速度太慢,怎么解决??

Readygo技术搜索引擎 网络搜索 efish 2008-1-14 6:26:10

从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

责任编辑: efish 参与评论 查找更多:
相关文章
用什么工具能改变应用程序的图标?? 用什么工具能改变应用程序的图标??
如何在用无线网卡的CE环境下,用程序直接连SQL Serv… 如何在用无线网卡的CE环境下,用程序直接连SQL Server数据库啊?
请教打开access窗体时的条件语句、 请教打开access窗体时的条件语句、
鱼龙混杂的垃圾论坛!!!!!!!! 鱼龙混杂的垃圾论坛!!!!!!!!
请教,在delphi中使用SQL Server数据库,程序执行时… 请教,在delphi中使用SQL Server数据库,程序执行时沙漏如何消除?
Microsoft .NET 框架无法安装 Microsoft .NET 框架无法安装
如何动态引用DLL??? 如何动态引用DLL???
各位大虾有个问题请教了 各位大虾有个问题请教了
急呀,请教大侠,一个数据库的问题 急呀,请教大侠,一个数据库的问题
标准菜鸟级问题 标准菜鸟级问题
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎