CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  数据库及相关技术

请各位高手指点:使用BCB 6.0 ADOQuery遇到的问题

楼主BlueStorm(蓝色风暴)2003-02-04 18:21:20 在 C++ Builder / 数据库及相关技术 提问

本人正在写一个使用ADOQuery将一台sqlserver   7.0服务器中的表的数据实时复制到另一台sqlserver   7.0服务器中的表中的小程序,遇到了效率不高及cpu利用率高的问题。(我没有使用sqlserver中的replication服务,因为不少行家说那东西不成熟)。经本人分析,ADOQuery运行时会产生大量的sql查询,下面是一个例子(使用sql   server   profiler   查看得到):  
   
  [一]   MyQuery->SQL->Add("select   count(*)   as   num,  
                        isnull(max(rec_num),0)   as   rec   from   MyTable")   结果:  
            (1)ExistingConnection  
   
            (2)declare   @P1   int  
                  set   @P1=NULL  
                  exec   sp_prepare   @P1   output,   NULL,   N'select   count(*)   as   num,  
                            isnull(max(rec_num),0)   as   rec   from   MyTable',   1  
                  select   @P1  
   
   
  [二]   MyQuery->Open()结果;  
            (1)sp_unprepare   1  
   
            (2)SET   NO_BROWSETABLE   ON  
   
            (3)declare   @P1   int  
                  set   @P1=NULL  
                  exec   sp_prepare   @P1   output,   NULL,   N'select   count(*)   as   num,  
                            isnull(max(rec_num),0)   as   rec   from   MyTable',   1  
                  select   @P1  
   
            (4)sp_execute   2  
   
            (5)Connect  
                  ExistingConnection  
   
            (6)SET   NO_BROWSETABLE   ON  
   
            (7)declare   @P1   int  
                  set   @P1=NULL  
                  exec   sp_prepare   @P1   output,   NULL,   N'SELECT   *   FROM   MyTable',   1  
                  select   @P1  
   
            (8)Disconnect  
   
   
  [三]   MyQuery->Close()结果  
            无反应  
   
  我使用的provider是microsoft   OLE   DB   provider   for   SQL   Server。不论将  
      MyQuery->Prepared设为True或False,结果都是一样。经常可以看到connect及disconnect的情况。对一个简单的查询来说这未免弄得太复杂了!  
   
  我很相知道怎样让上述过程总共只产生一个我需要的查询,也就是select   count(*)   as   num,   isnull(max(rec_num),0)   as   rec   from   MyTable,其他东西都不出现?  
   
  请多执教!  
   
   
   
  问题点数:0、回复次数:0Top

相关问题

  • 初学servlet遇到的困难,请各位指点指点
  • ADOQuery有错,请高手指点
  • 做资源管理器又遇到问题了:希望各位指点指点:
  • 50分!!!BCB高手们,有劳指点指点!!!
  • VB6中遇到的ADO和DLL问题,请不吝指点!
  • 这样的问题有没人遇到过?望指点!
  • 看书时遇到一行代码不解其意,请指点!
  • (62分)编写DLL时遇到的问题,请高手指点!
  • 遇到一个PRO*C预编译错误,请指点!
  • 菜鸟中秋节遇到大问题(foxpro),请高手指点

关键词

  • sqlserver
  • sql
  • null
  • p1
  • myquery
  • adoquery
  • rec
  • 使用
  • prepared
  • isnull

得分解答快速导航

  • 帖主:BlueStorm

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo