【问题标题】:Are there any new ODBC options for Foxpro?Foxpro 是否有任何新的 ODBC 选项?
【发布时间】:2009-08-03 12:39:27
【问题描述】:

我们通常使用 MS Visual Foxpro v9.0 SP1、语言、表格和报告。但是,有时我们使用 ODBC 驱动程序连接到表。 ODBC 驱动程序是为 Foxpro v6 编写的,不支持某些嵌套选择、自动增量字段或嵌入式强制转换。

我们希望找到替代现有产品的方法。它可以是与 Visaul Foxpro v9 一起使用的另一个 ODBC 驱动程序,或者是 ODBC 的完整替代方案。有这种事吗?

谢谢。

【问题讨论】:

    标签: odbc driver auto-increment visual-foxpro drivers


    【解决方案1】:

    (讲重用,今天刚刚在另一个帖子里回答过这个)

    如果您正在寻找适用于 VFP 数据库和表的 ODBC 驱动程序,您可以考虑查看 iAnywhere 的 Advantage Database。有一个本地引擎和一个服务器引擎。本地引擎具有访问 DBF 数据的引擎,但对于您的情况,它还有一个 ODBC 驱动器,可以处理 VFP 数据,包括当前的 Visual FoxPro 9。本地引擎和包含的 ODBC 驱动程序是免费的。

    http://www.sybase.com/ianywhere

    【讨论】:

    • 我现在得试试那个。感谢您的信息,对似曾相识感到抱歉:]
    【解决方案2】:

    您可以通过 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
    

    【讨论】:

    • 你回答的正是我所问的,顺便谢谢你:)。我想问的是,“我们可以使用哪种类型的 ODBC 驱动程序,MS Foxpro 6.0 的替代品?”实际上,我很高兴您发布了您的答案,因为我一直在想如何通过 Foxpro 使用中间层架构,这说明了如何实现它。再次感谢。
    • 对了,你提到的安全问题是什么?
    • 实际上有一个适用于 VFP9 的 OleDB 驱动程序可用,但我不知道您的数据版本。至于安全性,如果您作为 .DLL 运行,它将通过 .Net 用户帐户获得任何权限,如果它到一个受限制的目录,它将无法工作,但是,您可以进行模仿。我不是安全专家,但希望能够引导您朝着 A 方向前进。我已经在 C#.net 中编写了一些包装类,它允许直接与 VFP 表通信以进行 SQL 选择、更新、删除,并适应参数化查询以帮助限制 SQL 注入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2014-09-02
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多