6

Pymssql をダウンロードして sqlserver db に接続しましたが、接続文字列が error-pymssql.connect(pymssql.c.:7990) をスローしています

import pymssql
pymssql.connect(host='username\SQLEXPRESS',user='username',password='pwd',database='master')

sqlserver に接続できた人はいますか?

Error:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pymssql.pyx", line 556, in pymssql.connect (pymssql.c:7990)
    raise OperationalError(e[0])
pymssql.OperationalError: (20009, 'Net-Lib error during Unknown error')
4

3 に答える 3

0

私のセットアップ:

  • マイクロソフト Windows XP SP3。
  • Microsoft SQL Server 2008 (R2 ではない)。
  • CPython 2.7.4。
  • pymssql 2.0.0 (IIRC と共にインストールeasy_install)。

ログイン アカウントを作成するのを忘れていたsaので、数週間前にアカウントを作成する方法を探していたのを覚えています。以前は、Windows 認証を使用して (SQL Server Management Studio などで) ログインしていました。https://stackoverflow.com/a/3781737に従って、saユーザー アカウントを作成しました。

その中間ステップの後、私は Python を開始しました。

import pymssql
conn = pymssql.connect(host=r'MACHINE\SQLEXPRESS', user=r'sa', password=r'password', database=r'MYDB')
cur = conn.cursor()
cur.execute(r'SELECT COUNT(*) FROM mytable')
row = cur.fetchone()
print row[0]
cur.close()
conn.close()

あなたの問題についての私の推測では、接続パラメーター、特にバックスラッシュを使用するパラメーターで生の文字列を使用する必要があったということです。host

CentOS 5.8 64 ビット マシン (pymssql 1.0.2、freetds 0.91) でも試してみました。その趣旨で、次のよう$HOME/.freetds.confな内容のファイルも作成しました

[global]
tds version = 10.0

[MACHINE]
host = 192.168.1.2
port =1433
tds version = 10.0
encryption = request

そのファイルの構成例をどこから選んだか忘れてしまいました。

それが役立つことを願っています。

于 2013-05-16T14:54:32.740 に答える
-3

文字セット サンプルを宣言する必要があります。

pymssql.connect(host='username\SQLEXPRESS',user='username',password='pwd',database='master',chartset="your_charset")
于 2013-12-22T04:55:09.383 に答える