我有一个Visual FoxPro表,我需要从Sql Server访问。在Sql Server x86中,我只需创建一个链接服务器。不幸的是,VFP没有x64驱动 - 所以Sql Server x64无法为它创建链接服务器。Sql Server x64和x86链接服务器
到目前为止,我想出了以下选项 - 其中没有我特别喜欢:
- 设置x86 SQL Server以用作中继,以便查询从去x64 - > x86 - > VFP。
我真的不关心这个,因为除了是开发,我也是系统管理员。所以,这意味着我需要修补,维护和监视另一个Sql Server - 可能还有另一个服务器(假设我不只是使用单独的实例)。
此外,由于VFP提供程序不能使用4部分语法,因此必须使用OPENQUERY。所有的单引号逃逸的是思考就需要恰好有嵌入到另一个OPENQUERY语句的OPENQUERY语句让我目瞪口呆....
- 创建一个CLR表值函数,虽然议会将(可能?)也有64 - 所以我不得不出去PROC的(?IPC web服务)来实际运行查询
- 停止使从SQL Server查询VFP,和重写的客户端代码好位
原来,TVFs需要一个架构,所以这个选项并不像我最初想象的那样干净。我做了一个尖峰使WCF客户端进入MSSQL,它返回一列XML,然后可以使用Sql XML数据类型函数进行分析。它的工作原理,实际上比OPENQUERY查询更好一些,因为它实际上将变量作为参数。这节省了我大部分的单引号和EXEC舞蹈。
当然,Sql里面的WCF是完全不受支持的,闻起来像是一个很大的黑客攻击。我对性能和可靠性有非常严肃的保留。
显然,这是 “正确” 的答案。但是,有大量的客户端代码依赖于Sql Server表和VFP表之间的连接。重写这些东西来填充临时表或者做客户端连接似乎是一个相当大的负担。
这里希望有人可以建议一个更好的选择,或一些类似的经验。
当试图将FoxPro数据转换为64位机器上的SQL Server时,我们遇到了类似的问题。因为这是一笔一笔的交易与你的第一选择。 – Clinemi 2009-01-30 06:00:50