2016-08-14 4 views
2

У меня есть FileMaker db, работающий на FileMaker Server 14 на Mac Mini, и я пытаюсь добраться до него с помощью pyodbc. Все плохо.подключиться к файловому серверу с помощью pyodbc

Во-первых, что работает:

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 Server, ISQL дает мне [ISQL]ERROR: Could not SQLConnect, который просто так полезно вы знаете

Один вопрос в том, что в этой точке I «ве-то забыто, должен ли я использовать 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 

Любая информация очень ценится и крикнуть ресурсов here, here, и в других местах, помогая мне получить еще далеко.

+0

Вам определенно нужно использовать драйвер ODBC FileMaker. FreeTDS предназначен для работы с Microsoft SQL Server и Sybase. –

+0

Спасибо, я обновлю этот вопрос, когда вернусь на тестовую машину, но пока вы знаете, как я могу указать pyobbc на приложение ODBC Driver Manager с http://www.odbcmanager.net/? – brnco

+0

Приложение ODBC Manager, по-видимому, просто удобный способ обновления содержимого файлов ODI ODBC. Вы использовали бы его для создания записи DSN, которая использует драйвер «FileMaker ODBC», и что DSN будет записан в odbc.ini. Затем pyodbc будет использовать этот DSN для соединения, например. 'cnxn = pyodbc.connect (" DSN = MyFileMakerDSN; ")'. Обратите внимание, что при использовании DSN для вашего подключения в строке соединения требуется только имя DSN * *, поскольку в записи 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 читать «Driver = 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

Смежные вопросы