服务器A配置:XP+SP3,MSDE2000,域名为:A.vicp.net
开发机B配置:Win2003+SP2,vs2005,Sql2005+SP2 端口1433,Sql2000+sp4 端口20024问题:开发机上的数据想与服务器上的数据同步:采用第一种方式:
Sql语句如下:
if exists(select 1 from master..sysservers where srvname='srv_lnk') 
exec sp_dropserver 'A','droplogins' 
go 
exec sp_addlinkedserver'A','','SQLOLEDB','A.vicp.net' 
exec sp_addlinkedsrvlogin'A','false',null,'sa','123456'
go 
select * from A.DB.dbo.tb如果以上语句在Sql2005中运行,能查询到数据;
但如果在Sql2000中运行,则提示:
(1 行受影响)(1 行受影响)(0 行受影响)(1 行受影响)(0 行受影响)(1 行受影响)
消息 17,级别 16,状态 1,第 1 行
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。
现改为第二种方式:
Sql语句如下:
select * from openrowset('sqloledb','A.vicp.net';'sa';'123456',A.DB.dbo.tb)
在Sql2005中运行提示:
消息 15281,级别 16,状态 1,第 1 行
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。 在Sql2000中运行提示:
消息 17,级别 16,状态 1,第 1 行
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。
由于实施中所有的客户端安装的都是MSDE2000,要求本程序必须能在Sql2000的环境下运行,但开发机不可能重新安装环境(开发机里面的程序及其资料太多了)了,请高人指点上面的Sql语句在Sql2000里面出错是什么原因造成的?若是开发机的问题,开发机到底应该怎样更改配置才能达到目的呢?

解决方案 »

  1.   

    一个是2000,一个是2005,一个是企业版,一个是非企业版,这个要同步,太困难了.
    不过用程序自己去定时或不定时更改数据,可以实现,太麻烦.有关同步的例:如何实现两个数据库的同步http://topic.csdn.net/u/20080523/11/08e4624a-13d1-4a6c-a9bc-7cfdd721a351.html
      

  2.   

    --开启xp_cmdshell
    --SQL Server blocked access to procedure 'xp_cmdshell'
    sp_configure 'show advanced options', 1
    go
    reconfigure
    go
    sp_configure 'xp_cmdshell', 1
    go
    reconfigure
    go--开启sp_OACreate
    --SQL Server blocked access to procedure 'sys.sp_OACreate'
    sp_configure 'show advanced options', 1;
    go
    reconfigure;
    go
    sp_configure 'ole automation procedures', 1;
    go
    reconfigure;
    go
    sp_configure 'Ad Hoc Distributed Queries',1;
    go
    reconfigure
    go
      

  3.   

    SQL 2005启用组件Ad Hoc Distributed Queries 
      

  4.   

    http://topic.csdn.net/u/20081231/10/624c68b9-e9b6-4c01-910f-c116bdd14c63.html?2546
      

  5.   

    启用Ad Hoc Distributed Queries的方法,具体如下: exec sp_configure 'show advanced options',1
    reconfigure
    exec sp_configure 'Ad Hoc Distributed Queries',1
    reconfigure 使用完毕后,记得要关闭它
    exec sp_configure 'Ad Hoc Distributed Queries',0
    reconfigure
    exec sp_configure 'show advanced options',0
    reconfigure 
      

  6.   

    由于客户端和服务器端都是msde2000数据
    现在我的开发机器当作一个客户端,安装有两个数据库,分别为2005和2000,但客户的要求是在Sql2000的环境下同步。目前客户端如果为2005的话,根据大虾们的修改,是可以做到同步的,但如果为2000就出现了上面的问题,困惑已久了阿,客户催得急,能否解决阿?
      

  7.   

    当然是尽量安装跟客户的环境一样啦,包含32 or 64Bit尽量一样,减少很多麻烦