2016-08-14 103 views
2

我有一台FileMaker数据库在Mac Mini上的FileMaker Server 14上运行,我试图用pyodbc来获取它。它进展不顺利。用pyodbc连接到FileMaker服务器

首先,是什么在起作用:

telnet 192.169.19.3 2399 
ssh [email protected] 
tsql -H FM-Server -p 2399 -U Name -P pwd 

一个有关最后一个奇怪的是,它给了我一个秒计数器:
1
2
没有提示,但我仍然可以输入命令我不知道这意味着什么,也找不到任何有关它的信息。现在

,什么行不通:

tsql -LH 192.169.19.3 
tsql -LH FM-Server 
isql FM-Server Name pwd 

没有对服务器的FileMaker上市信息,ISQL给我[ISQL]ERROR: Could not SQLConnect这仅仅是如此的帮助,你知道

一个问题是,在这一点上我“已经我是否应该使用FM ODBC或freetds的是我在pyodbc司机,幸运的是他们都没有工作排序的遗忘:

>>> c = pyodbc.connect("DRIVER={FreeTDS};DSN=FM-Server;UID=Name;PWD=pwd") 
pyodbc.Error: ('08001', '[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)') 
>>> c = pyodbc.connect("DRIVER={FileMaker ODBC};DSN=FM-Server;UID=Name;PWD=pwd") 
pyodbc.Error: ('08S01', '[08S01] [unixODBC][FileMaker][FileMaker ODBC] Failed to connect to listener (2) (65535) (SQLDriverConnect)') 

给它只是DSN冻结窗口。这是我的配置:

odbc.ini | /usr/local/Cellar/unixodbc/2.3.4/etc/odbc.ini

[FM-Server] 
Driver = FreeTDS 
Host = 192.169.19.3 
ServerName = FM-Server 
UID = Name 
PWD = pwd 
Port = 2399 

ODBCINST.INI | /usr/local/Cellar/unixodbc/2.3.4/etc/odbcinst.ini

[ODBC Drivers] 
FileMaker ODBC = Installed 
FreeTDS = Installed 

[FileMaker ODBC] 
Driver = /Library/ODBC/FileMaker ODBC.bundle/Contents/MacOS/fmodbc.so 
Setup = 

[FreeTDS] 
Description = FreeTDS 
Driver = /usr/local/Cellar/freetds/1.00.9/lib/libtdsodbc.0.so 
Setup = /usr/local/Cellar/freetds/1.00.9/lib/libtdsodbc.0.so 
UsageCount = 1 

freetds.conf | /usr/local/Cellar/freetds/1.00.9/etc/freetds.conf

[FM-Server] 
    host = 192.169.19.3 
    port = 2399 
    tds version = 8.0 

的任何信息都很多帮助我得到这甚至远远赞赏,并喊资源herehere,和其他地方。

+0

您一定需要使用FileMaker ODBC驱动程序。 FreeTDS适用于Microsoft SQL Server和Sybase。 –

+0

谢谢,当我回到试验机,但是,在此期间,我会更新这个问题,你知道我怎么可以指向pyodbc从http://www.odbcmanager.net/ ODBC驱动程序管理器应用程序? – brnco

+0

ODBC管理器应用程序大概是更新ODBC .ini文件内容的便捷方式。您可以使用它创建使用“FileMaker ODBC”驱动程序的DSN条目,并将该DSN写入odbc.ini。然后pyodbc将使用该DSN来连接,例如, 'cnxn = pyodbc.connect(“DSN = MyFileMakerDSN;”)'。请注意,为连接使用DSN时,连接字符串中只需要DSN * name *,因为其他属性(驱动程序,服务器,数据库...)是在DSN条目(在odbc.ini中)中定义的。 –

回答

3

我可以用下面的,略有删节 brew uninstall freeDTS brew uninstall unixODBC pip uninstall pyodbc 重新安装pyodbc与ActualTech的安装程序(如果必要的话不知道)来解决这个问题:http://www.actualtech.com/python-osx-odbc.php

交换我的odbc.ini读“司机=的FileMaker ODBC “而不是”Driver = freeTDS“,但考虑到我实际上运行的代码,我不是那么必要的: python import pyodbc c = pyodbc.connect("DRIVER={FileMaker ODBC};SERVER=192.169.19.3;PORT=2399;UID=Name;PWD=pwd") 和神奇的工作。 idk man