我有一个csv文件,我正在尝试使用C#.NET中的SABulkCopy(Sybase的SQLBulkCopy版本)类导入Sybase SQL Anywhere数据库。 csv文件的第一列映射到Sybase DB中的64位整数主键值。其中一列中也有二进制数据(大于510字节)。使用Jet 4.0 OleDB访问csv文件可能不是进行批量插入的最佳方式,但我不知道使用csv源文件完成此操作的另一种方法。这一点的全部意义是避免将所有插入内容写入日志,因为blob数据是可消耗的,但需要以快速方式导入。我正在使用schema.ini文件来映射csv文件中的数据类型,问题是“Long”数据类型仅适用于32位整数。当我将OleDB DataReader提供给SABulkCopy.WriteToServer()时,这会导致错误,因为DB需要64位整数,而不是32位整数。
答案 0 :(得分:0)
你不能使用Jet 4.0,但你不需要。您可以在http://www.microsoft.com/en-us/download/details.aspx?id=13255获取64位Access Engine可再发行组件。您还需要将连接字符串“Provider”更新为“Microsoft.ACE.OLEDB.12.0”。
如果无法使用单独安装的引擎,您始终可以执行简单的文件读取并解析数据like this。