我已将iODBC安装在软件包上(http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/),并按照此处所述设置所有配置文件:http://blog.opensteam.net/past/2009/1/28/rails_ms_sql_on_mac/
我在Linux机器上设置了相同的东西,它工作正常。在我的Mac OSX 10.6.4上,如果我测试连接,我会收到此错误:
xxx@xxx:/opt/local/include$ iodbctest "dsn=res;uid=user;pwd=pass"
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0709.0909
1: SQLDriverConnect = [iODBC][Driver Manager]dlopen(/opt/local/lib/libtdsodbc.so, 6): Symbol not found: _CreateDataSource
Referenced from: /usr/lib/libiodbcinst.2.dylib
Expected in: flat namespace
(0) SQLSTATE=00000
2: SQLDriverConnect = [iODBC][Driver Manager]Specified driver could not be loaded (0) SQLSTATE=IM003
我不知道如何调试:(
答案 0 :(得分:2)
有关使用DSN和FreeTDS驱动程序的odbc.ini和odbcinst.ini文件中有什么params会很有趣吗?
看起来Apple iODBC驱动程序管理器无法加载驱动程序所需的设置例程,也不能加载FreeTDS驱动程序本身。
适用于Mac OS X的OpenLink iODBC驱动程序管理器(App捆绑的是基于它的)是基于框架的,并且包含用于加载那些没有内置的ODBC驱动程序的通用设置和登录对话框的例程。您可以从以下位置免费下载(因为它是开源的):
http://www.iodbc.org/downloads/iODBC/iodbc-sdk-3.52.7-macosx-10.5.dmg(适用于10.5和10.6)
答案 1 :(得分:2)
要遵循的步骤:
brew install freetds
subl ~/Library/ODBC/odbc.ini
[sqlserver01]
驱动程序=在/ usr / local / lib目录/ libtdsodbc.so
TDS_Version = 7.2
服务器= 192.168.8.7
港口= 1433年 跟踪=是
描述= DS01
#Database =
#不能指定freetds的用户名和密码
subl ~/.freetds.conf
host = ds01.uswa.net #service name
port = 1433
tds version = 8.0#适用于2008 +
sudo pip install pyodbc sudo pip install sqlsoup
Python连接字符串如下所示:
# Steve is my username; steve is my password; #sqlserver01 is my DSN in odbc.ini
db = sqlsoup.SQLSoup('mssql+pyodbc://Steve:steve@sqlserver01')
SQLAlchemy方式如下所示:
engine = create_engine('mssql+pyodbc://Steve:steve@sqlserver01')`
做任何疑问......
答案 2 :(得分:1)
我有同样的问题,linux工作,Lion 10.7没有(我猜10.6的同样问题)。 我使用FreeTDS驱动程序进行连接,从源代码编译:在编译时看起来像是编译错误的架构或32位/ 64位的libtdsodbc.so。
我按照本指南(不包括Excel部分),一切都像魅力一样。 http://asmiler.blogspot.fr/2011/10/accessing-mssql-databases-from-excel.html