服务器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里面出错是什么原因造成的?若是开发机的问题,开发机到底应该怎样更改配置才能达到目的呢?
开发机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里面出错是什么原因造成的?若是开发机的问题,开发机到底应该怎样更改配置才能达到目的呢?
不过用程序自己去定时或不定时更改数据,可以实现,太麻烦.有关同步的例:如何实现两个数据库的同步http://topic.csdn.net/u/20080523/11/08e4624a-13d1-4a6c-a9bc-7cfdd721a351.html
--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
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
现在我的开发机器当作一个客户端,安装有两个数据库,分别为2005和2000,但客户的要求是在Sql2000的环境下同步。目前客户端如果为2005的话,根据大虾们的修改,是可以做到同步的,但如果为2000就出现了上面的问题,困惑已久了阿,客户催得急,能否解决阿?