2017-02-07 11 views
0

私はPythonコードからストアドファンクションを呼び出そうとしています。 私が使用している場合:結果はNoneあるのでMySQL Connector/Pythonを使ってストアドファンクションを呼び出す方法は?

import mysql.connector 
from datetime import datetime 

with ... as conn 
    c = conn.cursor() 
    func = "SELECT get_customer_balance(%s, %s)" 
    customer_id = 577 
    dt = datetime(2015, 6, 30, 18, 5, 30) 
    result = c.execute(func, (customer_id, dt)) 
    val = result.fetchone() 

しかしresult.fetchone()呼び出しが失敗しました。 私はまた、ストアドプロシージャにドライバのcallprocメソッドを使用しようとしましたが、それはget_customer_balance(ストアドファンクションであるため)を認識しないので失敗します。
これについての情報はありません。本当に助けに感謝します。
ありがとうございます。

+0

私は、Pythonの専門家ではないだけで聞いてみたい、どのようにあなたも、あなたの接続文字列をあなたの関数を構築したのですか?それはテストされ、実行されていますか? –

+0

はい、実行されます。私は "sakila"データベース(MySQLサイトのデモデータベース)への接続オブジェクトを作成した別の関数を持っていましたが、簡潔にするためにここでは示しませんでした。 – sharpthor

答えて

0

申し訳ありませんが、私の監督...カーソルの代わりに結果にfetchone()を呼び出します。 それは実際に動作します:

val = c.fetchone() 
関連する問題