使用 csv/txt 示例打开 Database()?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />有没有人有一个 Open Database() 示例,用于将 ODBC 转换为 .csv 或 .txt 文件?我可以让 ODBC 与 Excel 2007 .xlsx 一起正常工作,但没有正确推断出用于打开 .csv 文件的文本文件连接字符串。我什至通过 Windows ODBC 数据源管理器引用了正确的“用户 DSN”名称字符串。所以我想知道我是否有错误的“DriverId”如下所示?谢谢...dj
这有效:
dt_excel=打开数据库("DSN=Excel 文件 xlsx;DBQ=C:\Data.xlsx;DriverId=790;MaxBufferSize=2048;PageTimeout=5;","SELECT *","Result");
这不起作用:
dt_csv=打开数据库("DSN=Text File;DBQ=C:\Data.csv;DriverId=27;MaxBufferSize=2048;PageTimeout=5;","SELECT *","Result");
回复:使用 csv/txt 示例打开数据库()?嗨 MS,是的,昨晚深夜我终于想通了!是的,这正是您在语法方面发布的内容。感谢您回复此主题。作为记录,以下是我对文本文件执行 ODBC 的了解。它实际上与 JSL 无关,而是对文本文件本身执行 ODBC 所需的行业惯例/语法:
一个。创建 schema.ini - 必须创建此文件以支持文本文件格式。将其放在与文本文件相同的目录中。通过记事本轻松创建。用于 ODBC 文本文件的 Google schema.ini 了解详细信息。
b.使用正确的 ODBC 语法 - 与 Excel ODBC DBQ 字符串不同,文本文件 ODBC DBQ 字符串不引用路径+文件名,而只是引用路径。这就是我挂断电话的原因。所以这是有效的(正如您在上面发布的那样 - 关键是引用 DBQ= 而不是 DBQ= 然后将文件名拆分为 SQL FROM 语句):
dt_csv=打开数据库("DSN=文本文件;DBQ=C:\;","SELECT * FROM Data.csv","Result");
C。次要细节 - 只是一个注释。如果您使用的是 Win7,ODBC 管理器有两个不同的位置。一个是 32 位位置,另一个是 64 位位置。微软将它们命名为格陵兰岛和冰岛(有点误导)。当/如果您要添加/修改 ODBC 文本文件驱动程序时,请注意这一点。我听说在 Win8 中他们可能会以某种方式制作这些单独的名称或标识符。
Win7 ODBC 管理器:
32 位:C:\Windows\SysWOW64\odbcad32.exe
64 位:C:\Windows\System32\odbcad32.exe
无论如何,上面的 a.) + b.) 确实允许我使用 JSL 到 ODBC 到原始文本文件。非常好... ...打碟机
回复:使用 csv/txt 示例打开数据库()?您尝试过这种变体吗? 它使用示例文件,但我遇到了分隔符问题。 但我至少得到了一个表格,其中包含来自文本文件的(混乱的)数据。
dt_csv =打开数据库( “DSN=文本文件;DBQ=C:\;” , “从 Data.csv 中选择 *” , “结果” ) ;
回复:使用 csv/txt 示例打开数据库()?谢谢乍得。我尝试删除“DriverId”字符串和其他后续字符串并得到相同的错误消息。就好像它找不到我的文本文件驱动程序(尽管它在 Windows ODBC 管理器中看起来很好)。否则,我的连接字符串中有某种拼写错误/不匹配吗?奇怪的是,这一切在 Excel 中运行良好(但我的数据文件是 csv,所以我宁愿不必将它们转换为 .xlsx 文件来使用 ODBC)。
这不起作用:
dt_csv=打开数据库("DSN=文本文件;DBQ=C:\Data.csv;","SELECT *","结果");
结果的错误消息:
[Microsoft][ODBC 文本驱动程序]“(未知)”不是有效路径。确保路径名拼写正确并且您已连接到文件所在的服务器。
回复:使用 csv/txt 示例打开数据库()?我不认为我曾经在我的 DSN 字符串中引用过“DriverId”。如果您完全不使用它,它会起作用吗?