系统对接-数据库共享原创
金蝶云社区-请输入昵称___
请输入昵称___
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:将第三方数据共享给星空。

将一二三四步双方数据库互换,一些关键信息作为参数,存放到星空系统。将第三方数据查询结果以视图的形式,绑定到星空单据,重新单据保存事件,调用第三方的存储过程,将数据保存。

赞 6