2012-03-17 14 views
0

私はしばらくの間この問題を抱えており、あなたのコメントが必要です。Pythonから出力パラメータを取得する方法Sybaseモジュール

2つの出力パラメータ(intおよびvarchar)でベンダーのプロシージャコールを処理する必要があります。私はPythonのSybaseモジュールを選びましたが、出力パラメータ付きのストアドプロシージャを呼び出す方法を記述したドキュメントが見つからないことがわかるまでは、すべて問題ありません。

Googleで常に見つかるメイン文書はhttp://python-sybase.sourceforge.net/news.htmlです。出力タイプが整数の場合、Sybase.OUTPUTは、(1)正確な作業である

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)}) 

が、私は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()のインスタンスを1ではなくOUTPUTに渡してみてください(他のすべてのパラメータはSybase.pyのDBMSに渡されます)。 フィールドのデータ型とmaxlength(と多分ステータス)を設定しようとします。

関連する問題