5

私のマシンには、'Tags' というテーブルを含む 'Test' というローカル DB があります。SQL Server Management Studio 2008 を使用して、このテーブルからこの DB とクエリにアクセスできます。

ただし、pyodbc を使用すると、問題が発生し続けます。

これを使用して:

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost:1433;DATABASE=Test')

エラーが発生します:

pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection. (14) (SQLDriverConnectW); [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Invalid Instance()). (14)')

(ポートを指定して、または指定せずに)

別の接続文字列を試す:

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost\Test,1433')

エラーは発生しませんが、次のようになります。

cur = conn.cursor()
cur.execute("SELECT * FROM Tags")

エラーが発生します:

pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'Tags'. (208) (SQLExecDirectW)")

これはなぜですか?

4

5 に答える 5

5

クエリを次のように変更してみました

SELECT * FROM Test.dbo.Tags

そしてそれはうまくいきました。

于 2012-07-12T15:50:28.270 に答える
3

接続文字列に認証属性がありません。これを試してください(私はWindows認証を使用しています):

conn = pyodbc.connect('Trusted_Connection=yes', driver = '{SQL Server}',
                      server = 'localhost', database = 'Test')
cursor = conn.cursor()
# assuming that Tags table is in dbo schema
cursor.execute("SELECT * FROM dbo.Tags")
于 2011-10-03T15:05:21.677 に答える
1

私にとっては、接続の詳細(ユーザー、サーバー、ドライバー、正しいテーブル名など)を維持することは別として、

次の手順を実行しました。

  1. ここでODBCのバージョンを確認しました(Windows 10)->
  2. (検索) ODBC ->
  3. 32/64 ビット版を選択 ->
  4. ドライバー ->
  5. そこに ODBC ドライバーのバージョンが存在することを確認します。そうでない場合は、このリンクを使用して関連するドライバーをダウンロードしてください:こちら

参考リンク:こちら

于 2018-10-05T18:23:42.293 に答える
0

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost:1433;DATABASE=Test')

インスタンス名とポートのこの接続の欠如は、このように書かれるべきではありません。

私の接続はこれです:

cn=pyodbc.connect('DRIVER={SQL Server};SERVER=localhost\SQLEXPRESS;PORT=1433;DATABASE=ybdb;UID=sa;PWD=*****')

ここに画像の説明を入力

于 2016-12-14T08:11:24.737 に答える