跨系统-跨数据库访问表或创建映射视图-PB访问数据库的特殊处理
一、 在项目中可能会遇到在一个项目中会出现多个数据库的操作。
二、 也可能会多个系统多个数据库之间进行交互操作显示。
三、 经常需要两个数据库关联查询或需要翻译显示内容时会很麻烦。
四、 今天就有个简单而实用的方法。一起来看看吧。
1.基本语法:
select 字段名 from OPENDATASOURCE ('SQLOLEDB', 'Data Source=[IP地址];USER ID = [用户名] ;Password=[数据库密码]' ).[数据库名].dbo.[表名] AS Rowset_1
2.如果有需要跟其它表进行关联查询的话,可以创建视图映射到本地数据库中如下:
create view V_SNF_CurrentStock as select cInvCode,iQuantity,cWhCode from OPENDATASOURCE ('SQLOLEDB', 'Data Source=192.168.1.8; USER ID = sa ;Password=123' ).SNFDB.dbo.CurrentStock AS Rowset_1
五、如果以上SQL语句执行不成功的话,报以下错误:
错误信息:SQL Server数据库远程操作中,在使用openrowset/opendatasource前首先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的。
处理方法如下:
第一种:启用Ad Hoc Distributed Queries的方法 SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用。
sp_configure 启用 'Ad Hoc Distributed Queries'。 启用Ad Hoc Distributed Queries的方法,执行下面的查询语句就可以了: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure 使用完毕后,记得一定要关闭它,因为这是一个安全隐患,切记执行下面的SQL语句: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure
如果都是内部管理类系统的话,可以打开后不进行关闭,这样用起来会更方便一些。
第二种:sql server 2008 64位连接sql 2000服务器的时候出现以下提示:
链接服务器"seeker2k4"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "Unspecified error"。 Msg 7311, Level 16, State 2, Line 1 无法获取链接服务器 "seeker2k4" 的 OLE DB 访问接口 "SQLNCLI10" 的架构行集 "DBSCHEMA_TABLES_INFO"。该访问接口支持该接口,但使用该接口时返回了失败代码。
此前SP4的补丁已安装。
方法:
在sql2000 中打开查询分析器:
执行SP4补丁包中\SQL2KSP4\install\instcat.sql
即可。
----------------------------------
二、.以上可以查询,但在PB中却不能执行,还需要执行如下命令
ALTER DATABASE sms --DataBase数据库名称
SET ANSI_NULL_DEFAULT ON,
ANSI_NULLS ON,
ANSI_PADDING ON,
ANSI_WARNINGS ON
作者: 王春天 出处: http://www.cnblogs.com/spring_wang/ Email: spring_best@yeah.net QQ交流:903639067
QQ群:322581894 关于作者: 大连天翼信息科技有限公司 技术总监。 SNF快速开发平台 创始人。应用平台架构师、IT规划咨询专家、业务流程设计专家。 专注于快速开发平台的开发、代码生成器。同时专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,精通DotNet系列技术Vue、.NetCore、MVC、Webapi、C#、WinForm等,DB(SqlServer、Oracle等)技术,移动端开发。熟悉Java、VB及PB开发语言。在面向对象、面向服务以及数据库领域有一定的造诣。现从事项目实施、开发、架构等工作。并从事用友软件产品U8、U9、PLM 客开工作。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。