【问题标题】:Delphi + ADO + dBase德尔福 + ADO + dBase
【发布时间】:2012-09-13 19:21:06
【问题描述】:

我正在努力让这 3 个工作正常。如果我使用这个连接字符串

Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;OLE DB Services = -1;Extended Properties=dBase IV;Dbq=c:\mypath

ADOTable1.Open 这样的操作非常快(好),但GetIndexNames 什么也不返回(坏)。

如果我改用这个连接字符串

Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV;OLE DB Services=-1;Data Source=c:\mypath

ADOTable1.Open 这样的操作非常慢(坏),而GetIndexNames 确实以应有的方式返回索引名称(好)。

如何通过 ADO 获取 dBase 表的速度和索引信息?

【问题讨论】:

    标签: delphi ado dbase


    【解决方案1】:

    我们使用以下连接字符串,效果非常好。

    Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="Driver={Microsoft Visual FoxPro Driver};UID=;SourceDB=c:\mypath;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
    

    【讨论】:

    • 我会试一试并报告。谢谢!
    • 在 IDE 中,当我将此字符串放入 TADOConnection.ConnectionString 的属性编辑器并尝试将 Connected 属性翻转为 True 时,我弹出一个错误 -> "[Microsoft][ODBC Driver Manager] Driver does不支持此功能”。我很确定我在默认情况下拥有所有其他属性。模式为 cmUnknown。 CursorLocation 是 clUseClient。 IsolationLevel 是 ilCursorStability。 ConnectOptions 是 coConnectUnspecified。我记得为 SourceDB 开辟了自己的道路。有什么我可能遗漏的吗?
    • 您是否检查过 Provider 属性设置为“MSDASQL.1”?您可以尝试删除一些选项吗?
    • 我尽我所能,最终得到了这个:'Provider=MSDASQL.1;Extended Properties="Driver={Microsoft Visual FoxPro Driver};SourceDB=c:\mypath;SourceType=DBF ;"' 仍然得到同样的错误。我看不到消除其他任何东西。是的,通过将整个字符串放入 ConnectionString 编辑框中的操作正确设置了 Provider 属性。
    猜你喜欢
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2011-10-04
    • 2012-12-13
    相关资源
    最近更新 更多