2012-09-06 2 views
0

callproc을 통해 "sp_executesql"을 호출하는 데 도움이 필요합니다 (RPC로 필요함). 다른 저장 프로 시저를 실행pymssql callproc unicode - 오류를 반환합니다.

File "executesql.py", line 4, in <module> 
    cur.callproc("sp_executesql", 'SELECT * FROM AdventureWorks.HumanResources.Employee WHERE BusinessEntityID = 109') 
    File "pymssql.pyx", line 357, in pymssql.Cursor.callproc (pymssql.c:4238) 
    self._returnvalue = proc.execute() 
    File "_mssql.pyx", line 1289, in _mssql.MSSQLStoredProcedure.execute (_mssql.c:12177) 
    check_cancel_and_raise(rtc, self.conn) 
    File "_mssql.pyx", line 1322, in _mssql.check_cancel_and_raise (_mssql.c:12473) 
    return maybe_raise_MSSQLDatabaseException(conn) 
    File "_mssql.pyx", line 1366, in _mssql.maybe_raise_MSSQLDatabaseException (_mssql.c:13067) 
    raise ex 
_mssql.MSSQLDatabaseException: (214, "Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.DB-Lib error message 214, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n") 

이 원활하게 진행 :이 오류가

import pymssql 
conn = pymssql.connect(host='11.22.33.44:1433', user='sa', password='XYZ', database='AdventureWorks') 
cur = conn.cursor() 
cur.callproc("sp_executesql", 'SELECT * FROM AdventureWorks.HumanResources.Employee WHERE BusinessEntityID = 109') 

이 내 코드입니다.

Traceback (most recent call last): 
    File "executesql.py", line 4, in <module> 
    cur.callproc("sp_executesql", u'SELECT * FROM AdventureWorks.HumanResources.Employee WHERE BusinessEntityID = 109') 
    File "pymssql.pyx", line 354, in pymssql.Cursor.callproc (pymssql.c:4177) 
    raise NotSupportedError('Unable to determine database type') 
pymssql.NotSupportedError: Unable to determine database type 

당신이 어떻게 해결하는 지 알고 있나요 : 유니 코드로 문자열을 실행 (u'Select는 ... ')이 오류를 준다?

SQL Server가 Microsoft SQL Server 2012 - 11.0.2100.60 (X64) 2012 년 2 월 10 일 19:39:15 Windows NT 6.1 (빌드 7601 : 서비스 팩)에서 Microsoft Corporation Enterprise Edition (64 비트) 1) (하이퍼 바이저)

고마워요

답변

0

동일한 문제가 있습니다. Issue 56에보고 된 것 같습니다. 지금까지 해결되지 않았습니다. :(

업데이트 :... 나는 @ 마이크 난 당신이 인용 한이 "56 문제를"보고 내 스레드 here를 참조

+0

감사를 "없음"문제에 대한 해결책을 찾았지만, 난을 찾을 수 없습니다 보고 된 소스가 바뀌 었습니다. 그들이 어디에 있는지 아십니까? 버그를 수정 한 후 처음부터 전체를 빌드하는 데 신경 쓰지 마십시오. – roi

+0

다운로드 섹션으로 이동하여 시스템의 버전을 다운로드하거나 압축을 푸십시오. 루트에있는 pymssql.pyx 파일에 복사합니다. 프로젝트 버전이 변경된 것 같지 않습니다. 로컬 복사본 일 수도 있습니다. 수정을 시도하는 것도 고려하고 있습니다. 문제가 해결되면 Randy의 Google 그룹이 프로젝트의 일부로 만드는 방법에 대해 설명합니다. 여기 링크 : https://groups.google.com/forum/?hl=ko&fromgroups=#!topic/ pymssql/lACWoHmAcvI – Mike

+0

@roi, 컴파일 할 수 있었습니까? 컴파일 할 때 결과 파일이 작동하지 않습니다. – Mike

관련 문제