2016-08-14 99 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