2012-03-17 2 views
0

잠시 동안이 문제로 인해 달라 붙어서 의견이 필요합니다.Python에서 출력 매개 변수를 얻는 방법 Sybase 모듈

2 개의 출력 매개 변수 (int 및 varchar)를 사용하여 공급 업체의 프로 시저 호출을 처리해야합니다. 나는 파이썬의 Sybase 모듈을 선택했다. 출력 매개 변수로 저장 프로 시저를 호출하는 방법을 설명하는 문서를 찾을 수 없을 때까지는 모든 것이 괜찮다.

Google에서 항상 발견되는 주 문서는 http://python-sybase.sourceforge.net/news.html입니다. 그들은 매우 곧 함수 호출을 소개 : 출력 유형이 정수

Output parameters from stored procedures are supported via the OUTPUT() function. The parameter to OUTPUT() determines the type and size of the buffer which will be allocated to receive the output value.

c.callproc('test_proc', {'@type': 'business', 
         '@tot_sales': 5, 
         '@num_books': Sybase.OUTPUT(1)}) 

경우, Sybase.OUTPUT (1) 제대로 일을하지만 내가 VARCHAR (및 다른 종류의 처리하는 방법 을 알려져 있지 않습니다).

DatabaseError: Msg 257, Level 16, State 1, Procedure sp_caller_id_manage Implicit conversion from datatype 'VARCHAR' to 'INT' is not allowed. Use the CONVERT function to run this query.

어떤 아이디어 :

잘못된 매개 변수 유형에 대한

, 난 항상 오류가?

답변

0

CS_DATAFMT()의 인스턴스를 OUTPUT에 1 대신 전달하십시오 (다른 모든 매개 변수는 Sybase.py의 DBMS에 전달됩니다). 필드의 데이터 유형 및 최대 길이 (그리고 아마도 상태)를 설정하십시오.

관련 문제