【问题标题】:ODBC: Cannot read DBF via network UNC pathODBC:无法通过网络 UNC 路径读取 DBF
【发布时间】:2016-04-19 00:33:44
【问题描述】:

长话短说,我需要通过 powershell 从网络上多个共享位置的遗留 DBF 文件中提取数据。我用 [System.Data.Odbc] 打开它们没有问题(避免需要安装 Jet OLEDB 驱动程序),但查询时遇到了一个小问题。

(1) 这有效(在查询中指定本地路径):

ConnectionString = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;"
Query = "SELECT * FROM C:\folder\Test.dbf"

(2) 这也有效(在 ConnString 中指定 UNC 路径):

ConnectionString = "Driver=...; Dbq=\\network\folder;"
Query = "SELECT * FROM Test"

(3) 但是这种组合不起作用(查询中的 UNC 路径):

ConnectionString = "Driver=..."
Query = "SELECT * FROM \\network\folder\Test.dbf"

#ERROR [42000] [Microsoft][ODBC dBase Driver] Syntax error in FROM clause."

(3) 是我的首选方法,因为文件列表采用\\unc\file.dbf 格式。这个脚本最终将由其他一些非技术人员维护,所以我试图让事情尽可能简单(没有路径拆分和连接字符串的多次重建)。

我找不到任何明确禁止 (3) 的地方;有人可以告诉我它是否可以实现吗? 谢谢!

【问题讨论】:

    标签: powershell odbc dbf unc


    【解决方案1】:

    UNC 路径 \\network\folder 可以映射为网络驱动器。

    例如:\\network\folder 作为驱动器 X:

    ConnectionString = "Driver=..."
    Query = "SELECT * FROM X:\Test.dbf"
    

    https://www.laptopmag.com/articles/map-network-drive-windows-10

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      相关资源
      最近更新 更多