我们通常使用 MS Visual Foxpro v9.0 SP1、语言、表格和报告。但是,有时我们使用 ODBC 驱动程序连接到表。ODBC 驱动程序是为 Foxpro v6 编写的,不支持某些嵌套选择、自动增量字段或嵌入式强制转换。
我们想找到我们现有的替代品。它可以是与 Visaul Foxpro v9 一起使用的另一个 ODBC 驱动程序,或者是 ODBC 的完整替代品。有这样的事吗?
谢谢。
我们通常使用 MS Visual Foxpro v9.0 SP1、语言、表格和报告。但是,有时我们使用 ODBC 驱动程序连接到表。ODBC 驱动程序是为 Foxpro v6 编写的,不支持某些嵌套选择、自动增量字段或嵌入式强制转换。
我们想找到我们现有的替代品。它可以是与 Visaul Foxpro v9 一起使用的另一个 ODBC 驱动程序,或者是 ODBC 的完整替代品。有这样的事吗?
谢谢。
(说重用,今天刚刚在另一个帖子里回答了这个)
如果您正在寻找 VFP 数据库和表的 ODBC 驱动程序,您可能会考虑查看 iAnywhere 的 Advantage Database。有一个本地引擎和一个服务器引擎。本地引擎具有访问 DBF 数据的引擎,但对于您的情况,它还有一个 ODBC 驱动器,可以处理 VFP 数据,包括当前的 Visual FoxPro 9。本地引擎和包含的 ODBC 驱动程序是免费的。
您可以通过 COM+ 并在 VFP 中执行几乎任何操作,但是,您通过管理工具、组件服务会遇到安全问题。
您可以构建为单线程或多线程 DLL。
注册后,类型库信息是“添加引用”到 C#(或其他)应用程序,您可以使用所需的任何参数进行函数调用。您可以返回很多东西,但通常是表格,我将其作为 XML 发送回来(通过 Foxpro 的 XMLAdapter 类),然后在 C# 中流式转换为表格一次。自从我以这种方式工作以来已经有一段时间了,但这提供了极大的灵活性,因为您可以在生成 XML 并将其作为字符串返回之前进行查询、扫描循环和其他复杂的条件测试和游标更新。
DEFINE CLASS YourClass as CUSTOM OLEPUBLIC
FUNCTION GetMyData( lcSomeString as String)
select * from (YourPath + "SomeTable" ) where ... into cursor C_SomeCursor readwrite
.. any other manipulation, testing, etc...
oXML = CREATEOBJECT( "xmladapter" )
lcXML = ""
oXML.AddTableSchema( "C_SomeCursor" )
oXML.ToXML( "lcXML", "", .f. )
return lcXML
ENDFUNC
ENDDEFINE