PYODBC--Data source name not found and no default driver specified
1 2 3 | 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)')
不要在连接字符串中的
这在Windows上失败...
1 2 3 4 5 6 7 | conn_str = ( r'DRIVER = {SQL Server};' r'SERVER=(local)\SQLEXPRESS;' r'DATABASE=myDb;' r'Trusted_Connection=yes;' ) cnxn = pyodbc.connect(conn_str) |
...但这有效:
1 2 3 4 5 6 7 | conn_str = ( r'DRIVER={SQL Server};' r'SERVER=(local)\SQLEXPRESS;' r'DATABASE=myDb;' r'Trusted_Connection=yes;' ) cnxn = pyodbc.connect(conn_str) |
我遇到了同样的问题,并修复了更改连接字符串的问题,如下所示。
写
1 | 'DRIVER={ODBC Driver 13 for SQL Server}' |
代替
1 | 'DRIVER={SQL Server}' |
您可以尝试:
1 2 3 | 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,但是发现您必须完全设置服务器属性中的内容。屏幕截图上的示例:
下面的连接字符串正在工作
1 2 3 4 5 6 7 8 | 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() |
请尝试以下方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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'
而且有效。
对于错误:pyodbc.InterfaceError :(" IM002"," [IM002] [Microsoft] [ODBC驱动程序管理器]数据源名称未找到且未指定默认驱动程序(0)(SQLDriverConnect)")
驱动程序与事件之间没有空间
连接=