环思产品论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2173|回复: 0
打印 上一主题 下一主题

用WebQuery实现跨数据库查询,可替代原WebService

[复制链接]

10

主题

14

帖子

844

积分

超级版主

多多

Rank: 8Rank: 8

积分
844
QQ
跳转到指定楼层
楼主
发表于 2016-6-18 08:49:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mengxiangduo 于 2016-6-18 09:16 编辑

1、在被访问的服务器,挂上WebQuery,最新版在服务端有日志记录功能,利于报错排查,SQL CLR要安装
2、更新sppbDIPWebQueryTable,fnpbDipWebQueryValue,sppbDIPWebQueryTable_FillDataToTempTable的脚本(DIP新DIP脚本管理中有,关键字WebQuery)
3、在需要执行访问的数据库,设置WebQuery地址
EXEC dbo.sppbDIPWebQuery_SetProxyAddress 'http://XXXX:81/WebQuery/QueryService.asmx'
--运用示例1:
DECLARE @sContractNo NVARCHAR(20)
SELECT @sContractNo = 'W1606070'
DECLARE @sSql NVARCHAR(MAX)
SELECT @sSql = 'SELECT TOP 10 * FROM dbo.sdOrderHdr WHERE sOrderNo='''+@sContractNo+''''
CREATE TABLE #1(i INT IDENTITY)
EXEC dbo.sppbDIPWebQueryTable @sSql=@sSql,@sTempTable='#1',@bCompress=0
SELECT * FROM #1
DROP TABLE #1


GO
--运用示例2
DECLARE @sContractNo NVARCHAR(20)
SELECT @sContractNo = 'W1606070'
DECLARE @sSql NVARCHAR(MAX)
SELECT @sSql = 'SELECT TOP 1 bSyncLock FROM dbo.sdOrderHdr WHERE sOrderNo='''+@sContractNo+''''
SELECT dbo.fnpbDipWebQueryValue (@sSql,0)

一直头痛跨数据库,单据状态的控制问题,原来的方法是,考虑两边数据库回写,现在不用了,直接查询判断下就好了,感谢胡伟指导。
蔡经理:
webquery目前能支持sql server和oracle两种数据库间的接口数据转换。
注意,大数据量时慎用,性能方面目前对大数据的支持不是特别好。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|上海环思 ( 沪ICP备11022428号 )

GMT+8, 2024-9-17 09:38 , Processed in 0.096389 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表