嗨我有一个在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文本驱动程序或有任何替代解决方案?谢谢
我很确定它会自动工作(即使在64位机器上),只要执行过程是32位。
尝试重新编译以专门针对x86。
您需要64位Microsoft Access数据库引擎2010可再发行组件
然后试试
Microsoft Access Text Driver (*.txt, *.csv)
对于驱动程序名称。
AFAIK,来自Microsoft Access数据库引擎2010 64位可再发行组件的所有64位ODBC驱动程序略微更改了它们的驱动程序名称,我想将它们与32位对应程序区分开来。
我有这个确切的问题,并重新编译目标x86特别工作!请注意,为了做到这一点,我必须在高级编译器设置对话框中指定目标CPU - 项目菜单>属性>编译选项卡>高级编译选项按钮。
在找到此论坛条目之前,我确实安装了Microsoft Access数据库引擎2010可再发行组件(32位),但我不知道这是否对此问题有任何影响。
如上所述,当执行进程为32位(在这种情况下针对x86进行编译使应用程序特定于32位)时,应用程序将使用来自C:\ Windows \ SysWOW64 \ odbcad32.exe的驱动程序。
谢谢Cameron。
我们是从ASP.Net做到这一点,只需将一个站点移动到在应用程序池的高级设置中打开“32位已启用”的单独应用程序池中,就可以在Windows 2012上运行。
很多人在这里看起来很绝望,我想提供一些解决方案。但是,首先我要强调90年代这个过时的专有垃圾想法。
\COPY
并删除CSV的概念。
您可以使用PostgreSQL维护CSV作为服务器使用Foreign Data Wrapper(file_fdw
)。ODBC-> text接口特别疯狂,因为ODBC没有定义超出连接的配置(所以我假设有很多假设)。