您好我在XP上使用Text ODBC驱动程序开发了一个应用程序。但是,当我使用Office 2007在Win 7上部署时,我遇到了连接问题。
<add key="SQLConnection.TextConnectionString" value="Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\Data\;Extensions=asc,csv,tab,txt;Persist Security Info=False" />
错误[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序
我搜索了所有解决方案,例如安装以下
Microsoft Access数据库引擎2010可再发行(32位)
2007 Office System驱动程序:数据连接组件
在所有这些之后,在我的数据源(ODBC)中,它仍然只显示“SQL本机客户端/ SQL服务器/ SQL服务器本机客户端”
在C:\ Windows \ SysWOW64 \ odbcad32.exe
中我可以看到所有x32驱动程序,但是如何修改我的连接字符串以访问32位Microsoft Text驱动程序,还是有其他替代解决方案? 感谢
答案 0 :(得分:9)
我很确定它会自动工作(即使在64位机器上),只要执行过程是32位。
尝试重新编译以专门定位x86。
答案 1 :(得分:6)
您需要64位Microsoft Access数据库引擎2010可再发行组件
然后尝试
Microsoft Access Text Driver (*.txt, *.csv)
表示驱动程序名称。
AFAIK,来自Microsoft Access数据库引擎2010 64位可再发行组件的所有64位ODBC驱动程序略微更改了它们的驱动程序名称,我想将它们与32位对应程序区别开来。
答案 2 :(得分:3)
我有这个确切的问题,重新编译到目标x86专门工作!请注意,为了做到这一点,我必须在高级编译器设置对话框中指定目标CPU - 项目菜单&gt;性状&gt;编译标签&gt;高级编译选项按钮。
在找到此论坛条目之前,我确实安装了Microsoft Access数据库引擎2010可再发行组件(32位),但我不知道这是否对此问题有任何影响。
如上所述,当执行进程为32位(在这种情况下针对x86进行编译使应用程序特定于32位)时,应用程序将使用来自C:\ Windows \ SysWOW64 \ odbcad32.exe的驱动程序。
谢谢Cameron。
答案 3 :(得分:0)
我们是通过ASP.Net进行此操作,只需将一个站点移动到在应用程序池的高级设置中打开“32位已启用”的单独应用程序池中,就可以在Windows 2012上运行。
答案 4 :(得分:0)
很多人在这里看起来很绝望,我想提供一些解决方案。但是,首先,我想强调一下这是一个90年代的专有垃圾概念。
使用Unix ODBC来承载Linux(文档似乎(声称)声称支持Microsoft text driver
一个更好的选择当然是将CSV导入PostgreSQL。
\COPY
并删除CSV的概念。file_fdw
)将PostgreSQL用作服务器来维护CSV。如果您不想运行RDBMS,则现代方法是使用SQLite。如果您不需要服务器/客户端模型,这是个好主意。
ODBC->文本接口特别疯狂,因为ODBC并未定义连接以外的配置(因此我假设那里有很多假设)。