我是数据库的新手,我正在寻求一些帮助。我们有一个自定义应用程序,它将数据保存在SQL Server数据库中。我们还有一个基于QuickBooks销售点的POS系统。我们正在购买一种名为QODBC的产品,它为我们提供了与QBPOS兼容的ODBS接口。
SQL Server数据库有一个名为customerinfo
的表,有70列我们感兴趣的15列信息。
他们是:
id, txtfname, txtlname, txtemployer, txtphone, email, txtaddress, txtcity, txtstate, txtzip, IDENTIFICATIONType, IDENTIFICATIONumber, IDState, IDENTIFICATIONExpiry & dtpBirth
。
这些列需要导入到ODBC可访问的QBPOS中,其中列的名称不同,QB在所有上述名称之前(例如,SQL Server列为id
,因此QBPOS列为{{ 1}})。什么
我们想做的是定期导入(比如每分钟左右)我们需要进入QBPOS的数据。首先,除了每分钟左右的导入时间表之外,是否可以通过我们可以放在桌面上的图标来实现,只在我们需要时才这样做?此外,我们是否能够为现有客户更新SQL Server数据库中已更改的数据?
我提前感谢你们所提供的任何帮助!!!
答案 0 :(得分:2)
作为一般规则,数据被拉动而不是被推动要简单得多。
这意味着您最好在QBPOS系统上设置一个计划,该计划查询MS SQL Server以收集您需要的数据。但是,我不了解QBPos,也不能评论如何做到这一点,或者即使有可能。
另一种方法是一次将一条记录从SQL Server推入QBPOS。这当然是可能的,但我希望它会很慢......
(虽然您的代码可能看起来像是一次性推送一整套数据,但如果您对SQL Server进行概要分析,您会发现它启动了许多单独的插入/更新/删除命令。这就是为什么它是两者的较慢机制。)
要仅使用更改更新QBPOS服务器到SQL Server,您需要执行以下操作:
- 记录每次更改发生的时间(删除以及插入和更新)
- 在QBPOS服务器中存储收到的最后一次更改的时间戳
- 检查SQL Server存储过程中的值以确定要推送的更改
注意:"已推送的内容与#34;之间存在差异。和"收到了什么"因为QBPOS数据库可以从备份等恢复。这意味着最后收到的数据"值必须存储在QBPOS数据库中。
这个答案是故意相当高的水平,因为编写所有这些的确切解决方案需要占用大量空间。如果您有任何您不熟悉的术语或概念,我建议您在联机丛书或Google中搜索它们,并了解自己可以管理的内容,并进行一些游戏。在这些事情中,了解你的行为和原因是非常重要的,而不仅仅是复制其他人的明确指示。