使用SQL Server的存储过程和触发器来实时同步ERP和淘宝网的数据

来源:互联网 发布:昭通市2017旅游数据 编辑:程序博客网 时间:2024/06/05 02:31

目前接手一个项目,是一个销售服装的电子商务网站, 内部使用商贸之星的CRM来管理订单和库存,外网有淘宝商城,为了实现商贸之星和淘宝商城之间的库存数据保持同步,需要自己开发这样一个工具.

现场环境:

1、淘宝商城

2、商贸之星

 

对于淘宝商城,客户在淘宝上下订单,发生库存的变化,应该能及时通知内网的商贸之星,而内网的商贸之星内的库存变化,应该及时更新淘宝商城的库存数量。

目前淘宝有很成熟的开放平台,提供了大量的api可以调用,网址:http://open.taobao.com

在这里,我们不仅要更新淘宝的数据,还要及时知道用户在淘宝下了订单,因此,这里还要用到淘宝的主动业务推送服务,淘宝称之为Stream API, 文档地址:

http://dev.open.taobao.com/dev/index.php/Stream_API%e4%bb%8b%e7%bb%8d

网页下面还有示例代码下载。

对于商贸之星,是一个用.net开发的CRM,使用web service来实现客户端和服务器的调用,因为没有代码,不能做二次开发,如何获得数据的变化,考虑过替换web service接口,dll劫持,网络数据包嗅探等方法,都不是很方便,最后考虑从使用的数据库入手,系统使用的是sql  server 2005,通过查阅他的手册,了解可以使用触发器来引发数据更新的事件,但是,如何把这个事件通知给我的应用程序呢?花了不少时间查阅资料,目前确定有三种方法可以实现:

1、xp_cmdshell

2、sp_addextendedproc
3、CLR集成

xp_cmdshell 只能执行dos程序,很多人用来做系统入侵。xp_cmdshell里需要启用才可以使用。

例子:

EXEC xp_cmdshell 'dir *.exe';

GO

sp_addextendedproc是将外部写的dll中的函数引入SQL Server ,可以作为存储过程被调用。

例子:

USE master

GO

EXEC sp_addextendedproc xp_hello, 'c:\xp_hello.dll'

 

对于SQL Server 2012,Microsoft SQL Server 现在具备与 Microsoft Windows .NET Framework 的公共语言运行时 (CLR) 组件集成的功能。CLR 为托管代码提供服务,例如跨语言集成、代码访问安全性、对象生存期管理以及调试和分析支持。对于 SQL Server 用户和应用程序开发人员来说,CLR 集成意味着您现在可以使用任何 .NET Framework 语言(包括 Microsoft Visual Basic .NET 和 Microsoft Visual C#)编写存储过程、触发器、用户定义类型、用户定义函数(标量函数和表值函数)以及用户定义的聚合函数。

可见这个是更好的集成方式,对于使用最新版本的SQL Server而言。

 

目前技术上的大问题已经解决,流程也基本走通,接下来就可以进入实际的开发工作中了。

 

 

 

原创粉丝点击