【问题标题】:OleDB ' Unspecified error' VBOleDB '未指定的错误' VB
【发布时间】:2014-09-24 18:12:25
【问题描述】:

我正在使用 oledb 从 .txt 文件中获取数据,但遇到了错误。

Dim oleDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\CompName\C$\Path;ExtendedProperties="Text;HDR=Yes;FMT=Fixed""

其中 CompName 和 Path 是实际值

适配器填充出现未指定错误

Using connection As New OleDbConnection(oleDb)
        Using command As New OleDbCommand(sql, connection)
            Using adapter As New OleDbDataAdapter(command)
                adapter.Fill(s)
            End Using
        End Using
    End Using
    Return s
End Function

有人尝试使用 oledb 从不同的计算机通过 Intranet 获取数据吗?

【问题讨论】:

  • 您将格式设置为 FIXED,您是否有描述文本文件结构(A.K.A. Schema)的 SCHEMA.INI? connectionstrings.com/microsoft-jet-ole-db-4-0/…
  • 是的,我有 - 但我会检查默认分隔符以确保
  • 还要检查没有隐藏共享 C$ 的“普通”共享名,这可能是权限问题。
  • 好吧,你是对的 - 我有 schema.ini 但在不同的文件夹中:P 谢谢!

标签: vb.net oledb


【解决方案1】:

要将 OleDb 文本驱动程序与使用固定长度列格式化的文本文件一起使用,您需要在文本文件所在的同一文件夹中有一个 SCHEMA.INI 文件。
SCHEMA.INI 允许为文本文件定义各种属性,如格式、字段名称、宽度和类型、字符集和一些转换规则。

来自 MSDN

使用Text驱动时,文本文件的格式为 通过使用模式信息文件确定。 架构信息 文件始终命名为 Schema.ini 并始终保存在同一目录中 作为文本数据源。架构信息文件提供 IISAM 包含有关文件一般格式的信息, 列名和数据类型信息,以及其他几个数据 特征。访问时始终需要 Schema.ini 文件 定长数据。当您的文本时,您应该使用 Schema.ini 文件 表包含 DateTime、Currency 或 Decimal 数据,或任何时间 您希望更好地控制表中数据的处理。

有关 SCHEMA.INI 文件的更多详细信息,请参见 on this MSDN page

【讨论】:

  • 是的,我只是忘记了我在没有架构的情况下移动了文件 :) 现在一切都像魅力一样谢谢!
猜你喜欢
  • 2013-10-26
  • 2016-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多