系统对接-数据库共享原创
6人赞赏了该文章
630次浏览
编辑于2022年06月28日 16:00:17
仅适用于部分场景,建议以接口方式实现。
方案1:将星空数据库共享给第三方,进行调用和查询。
①创建数据库用户。举例 用户名:demo, 密码123, 数据库test
USE [master] GO CREATE LOGIN [demo] WITH PASSWORD=N'123', DEFAULT_DATABASE=[test], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO USE [test] GO CREATE USER [demo] FOR LOGIN [demo] GO
②给用户设置权限,以 工序汇报单、预置基础资料赋予查询、自定义表格TestTable 新增。
GRANT SELECT ON T_SFC_OPTRPT TO [demo]; GRANT SELECT ON T_SFC_OPTRPTENTRY TO [demo]; GRANT SELECT ON T_SFC_OPTRPTENTRY_A TO [demo]; GRANT SELECT ON T_SFC_OPTRPTENTRY_L TO [demo]; GRANT SELECT ON T_BD_BARCODEMAIN TO [demo]; GRANT SELECT ON T_BAS_PREBDONE TO [demo]; GRANT SELECT ON T_BAS_PREBDONE_L TO [demo]; GRANT INSERT ON TestTableTO [demo];
③去对接方数据库设置链接
创建存储过程,方便下次重新设置
CREATE PROCEDURE [dbo].[ConInit] @ip VARCHAR(200), @username VARCHAR(50),@pwd varchar(50) as Exec sp_droplinkedsrvlogin ZJK,Null Exec sp_dropserver ZJK EXEC sp_addlinkedserver @server='ZJK', @srvproduct='', @provider='SQLOLEDB', @datasrc=@ip EXEC sp_addlinkedsrvlogin 'ZJK', 'false', NULL, @username, --帐号 @pwd --密码
EXEC ConInit '127.0.0.1','demo','123'
④执行查询语句,可改为视图更美观。
select m.FID, FNumber,FName from ZJK.test.dbo.T_BAS_PREBDONE m inner join ZJK.test.dbo.T_BAS_PREBDONE_L L on m.FID=L.FID where FDOCUMENTSTATUS='C'
方案2:将第三方数据共享给星空。
将一二三四步双方数据库互换,一些关键信息作为参数,存放到星空系统。将第三方数据查询结果以视图的形式,绑定到星空单据,重新单据保存事件,调用第三方的存储过程,将数据保存。
推荐阅读