pyodbc.Error:('IM002','[IM002] [unixODBC] [驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序(0)(SQLDriverConnect)')

use*_*069 7 python

我试图使用pyodbc连接到数据库并遇到以下错误,任何人都可以建议如何克服以下错误?

使用以下命令安装pyodbc

sudo apt-get install unixodbc-dev
pip install pyodbc
Run Code Online (Sandbox Code Playgroud)

码:-

#!/usr/bin/python
import pyodbc

server_name='odsdb.qualcomm.com'
database_name='ODS'
#cnx = pyodbc.connect("SERVER="+server_name+";DATABASE="+database_name)
cnx = pyodbc.connect("DRIVER={SQL Server};SERVER="+server_name+";DATABASE="+database_name)

db_cursor = cnx.cursor() 

print "List of tables in DB"
for row in db_cursor.tables():
    print row.table_name
print "\n"
Run Code Online (Sandbox Code Playgroud)

错误:-

Traceback (most recent call last):
  File "mysql.py", line 7, in <module>
    cnx = pyodbc.connect("DRIVER={SQL Server};SERVER="+server_name+";DATABASE="+database_name)
Run Code Online (Sandbox Code Playgroud)

tuf*_*der 1

您应该从设置和配置 FreeTDS开始。这是我的文件中的示例配置,但我确信其他变体也可以工作。一个区别是我使用的是 Django,但下面的结果最终仍然有效,但它使用 SQL 身份验证比使用 Windows 身份验证效果更好。

来自/etc/freetds/freetds.conf(如果服务器名称的 DNS 未激活,则使用服务器的 IP)。

# A typical Microsoft server
[MyServer]
        host = 10.0.0.10\path
        port = 1433
        tds version = 7.0
Run Code Online (Sandbox Code Playgroud)

/etc/odbcinst.ini

[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.s
Run Code Online (Sandbox Code Playgroud)

/etc/odbc.ini

[MyServer]
Description = "Some Description"
Driver = FreeTDS
ServerName = servername\path
Server = servername
Port = 1433
Database = DBNAME
Run Code Online (Sandbox Code Playgroud)

然后这个命令将我连接到数据库。

tsql -S MyServer -U username@servername -P password