import pyodbc
connection = pyodbc.connect('Driver = {SQL Server};Server=SIWSQL43A\SIMSSPROD43A;'
'Database=CSM_reporting;Trusted_Connection=yes;')
connection = pyodbc.connect('Driver = {SQL Server};Server=SIWSQL43A\SIMSSPROD43A;'
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
使用pyodbc错误从MSSQL获取数据的可能重复项
不要在连接字符串中的Driver关键字后放置空格。
这在Windows上失败...
conn_str = (
r'DRIVER = {SQL Server};'
r'SERVER=(local)\SQLEXPRESS;'
r'DATABASE=myDb;'
r'Trusted_Connection=yes;'
)
cnxn = pyodbc.connect(conn_str)
...但这有效:
conn_str = (
r'DRIVER={SQL Server};'
r'SERVER=(local)\SQLEXPRESS;'
r'DATABASE=myDb;'
r'Trusted_Connection=yes;'
)
cnxn = pyodbc.connect(conn_str)
"请勿在连接字符串的Driver关键字后放置空格。" 这个对我有用。.最初我很困惑是什么地方出了问题.. :-) +1。
我遇到了同样的问题,并修复了更改连接字符串的问题,如下所示。
写
'DRIVER={ODBC Driver 13 for SQL Server}'
代替
'DRIVER={SQL Server}'
我有你在这里写的方式,但仍然收到问号者所遇到的错误
您可以尝试:
import pyodbc
# Using a DSN
cnxn = pyodbc.connect('DSN=odbc_datasource_name;UID=db_user_id;PWD=db_password')
注意:您将需要知道" odbc_datasource_name"。在Windows中,您可以搜索ODBC数据源。该名称将如下所示:
数据源名称示例
附言:我不确定要为数据源名称查看哪个选项卡。
我遇到了这个问题,正在寻找解决方案。最终,我尝试了https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Windows中的所有选项,并且对于我的MSSQL 12仅" {用于SQL Server的ODBC驱动程序11}"的作品。只需一一尝试。第二个重要的事情是您必须获得正确的服务器名称,因为我很珍贵地认为在所有情况下都需要设置 SQLEXPRESS,但是发现您必须完全设置服务器属性中的内容。屏幕截图上的示例:
这使我想出答案,因为我从教程中获得了{SQL Server Native Client 11.0},而我的仅与{SQL Server}一起使用。
下面的连接字符串正在工作
import pandas as pd
import pyodbc as odbc
sql_conn = odbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=SERVER_NAME;DATABASE=DATABASE_NAME;UID=USERNAME;PWD=PASSWORD;')
query ="SELECT * FROM admin.TABLE_NAME"
df = pd.read_sql(query, sql_conn)
df.head()
请尝试以下方法:
import pyodbc
server = 'servername'
database = 'DB'
username = 'UserName'
password = 'Password'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute('SELECT * FROM Tbl')
for row in cursor:
print('row = %r' % (row,))
我正在使用
Django 2.2
并在连接到sql-server 2012时遇到了相同的错误。花了很多时间来解决此问题,终于成功了。
我变了
'driver': 'ODBC Driver 13 for SQL Server'
至
'driver': 'SQL Server Native Client 11.0'
而且有效。
@ Aravind30790如果有帮助,请支持此解决方案。 谢谢!
对于错误:pyodbc.InterfaceError :(" IM002"," [IM002] [Microsoft] [ODBC驱动程序管理器]数据源名称未找到且未指定默认驱动程序(0)(SQLDriverConnect)")
驱动程序与事件之间没有空间
连接= Driver={SQL Server Native Client 11.0};
"Server=servername;"
"Database=dbname;"
"Trusted_Connection=yes;"