Conectando-se ao MS SQL Server do Ubuntu Server

1

Usando o Ubuntu 10.04 LTS, estou tentando conectar-me a um MS SQL Server que temos em outra caixa de dentro de um script Python. Quais são as etapas que preciso seguir para fazer isso? No momento, estou tentando usar o módulo pyodbc, mas sempre que tento conectar, recebo o seguinte erro:

Data source name not found, and no default driver specified (0)(SQLDriverConnectW)

Então eu olhei para o arquivo odbvcinst.ini que estava vazio, adicionei uma entrada e agora, quando eu uso um dos itens que defini lá, recebo o seguinte erro:

Driver's SQLAllocHandle on SQL_HANDLE_HENV failed (0)(SQLDriverConnectW)

Eu instalei: unixodb unixodbc-dev freetds-dev freetds-bin. Eu coloquei isso no SF e não SO porque eu estou pensando que isso é um problema de configuração do servidor. Qual driver devo ter e como referenciá-lo em qual arquivo, etc? (Eu sou bem novo no Ubuntu)

    
por Nick 01.07.2010 / 17:24

1 resposta

2

Você configurou a fonte de dados no seu arquivo /etc/freetds.conf ?

A entrada deve ser algo como:

# A typical Microsoft server
[egServer70]
        host = ntmachine.domain.com
        port = 1433
        tds version = 7.0

(Embora eu costumo usar a versão tds = 8.0 quando estou trabalhando com o MS SQL Server, e funciona bem)

Editar: (vai colocar minhas respostas aqui para que eu possa codificá-las)

Seu /etc/odbcinst.ini deve se parecer com:

[MSSQL]
Description = FreeTDS
Driver = /usr/lib/libtdsodbc.so 
Setup = /usr/lib/libtdsS.so
CPTimeout =
CPReuse =

(Verifique se os caminhos do driver estão certos. Às vezes é / usr / lib / odbc /)

Então a string do python deve se parecer com:

import pyodbc
connection = pyodbc.connect("DRIVER={MSSQL};SERVER=yourserver.yourdomain.com;UID=username;PWD=password;DATABASE=databasename")
    
por 01.07.2010 / 17:34