web-dev-qa-db-ja.com

PYODBC-データソース名が見つからず、デフォルトドライバーが指定されていない

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]データソース名が見つからず、デフォルトもありません指定されたドライバー(0)(SQLDriverConnect) ')

8
user8560985

接続文字列の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)
13
Gord Thompson

私は同じ問題に出会い、以下のように接続文字列を変更して修正しました。書く

'DRIVER={ODBC Driver 13 for SQL Server}'

の代わりに

'DRIVER={SQL Server}'
5
Kashq

あなたは試すことができます

import pyodbc
# Using a DSN
cnxn = pyodbc.connect('DSN=odbc_datasource_name;UID=db_user_id;PWD=db_password')

:「odbc_datasource_name」を知っている必要があります。 Windowsでは、ODBC Data Sourcesを検索できます。名前は次のようになります。

データソース名の例

3
dady7749

私はこの問題に直面し、解決策を探していました。最後に、 https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Windows からすべてのオプションを試しましたが、MSSQL 12の場合は「{ ODBCドライバー11 for SQL Server}」が動作します。ひとつずつ試してみてください。そして、2番目に重要なことは、すべての場合に\ SQLEXPRESSを設定する必要があると考えていたが、サーバープロパティで表示されるものを正確に設定する必要があることがわかったためです。スクリーンショットの例: enter image description here

2
Ustin

以下を試してください:

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,))
0
Srinivasan

私は使っています

ジャンゴ2.2

sql-server 2012への接続中に同じエラーが発生しました。この問題を解決するために多くの時間を費やし、最終的にこれは機能しました。

私が変更され

'driver': 'SQL Server用ODBCドライバー13'

「ドライバー」:「SQL Server Native Client 11.0」

そしてそれは働いた。

0
Avnish alok

以下の接続文字列が機能しています

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()
0
Gurpreet Deol

エラーの場合:pyodbc.InterfaceError:( 'IM002'、 '[IM002] [Microsoft] [ODBC Driver Manager]データソース名が見つからず、デフォルトドライバーが指定されていない(0)(SQLDriverConnect)'

ドライバーとイベントの間にスペースがない

接続= Driver={SQL Server Native Client 11.0};"Server=servername;""Database=dbname;""Trusted_Connection=yes;"

0
Ajay Singh