2012-02-02 59 views
1

我想從使用MySQLdb接口的Twisted adbapi調用MySQL存儲過程,但無法讓它工作。我看到有一種特殊的方式來調用MySQLdb(callproc)中的存儲過程,所以我想知道是否有一種特殊的方式從adbapi調用它。用扭曲的adbapi調用MySQL存儲過程

我的存儲過程需要兩個字段A_PROCEDURE(field1 VARCHAR(20), field2 VARCHAR(25)),我試圖在我的程序中以最明顯的方式調用它:dbpool.runOperation("CALL A_PROCEDURE(%s,%s)", arg1, arg2)。這種嘗試稱爲errback。如果我只是從我的終端連接到數據庫進行測試,該過程正常工作。

回答

3

您可以使用runInteraction做任意數據庫或適配器這樣的具體的事情:

def aProcedure(cursor, arg1, arg2): 
    cursor.execute("CALL A_PROCEDURE(%s, %s)", (arg1, arg2)) 
    return cursor.fetchall() 

d = dbpool.runInteraction(aProcedure, arg1, arg2) 
...