2012-02-22 10 views
2

CursorUseResultMixInでどのように使用できますか?MySQLdbMySQLdbとCursorUseResultMixInを使用した大きなクエリ

con=MySQLdb.connect(host='localhost', user='test', passwd='xx', db='yy') 
curs = con.cursor(MySQLdb.cursors.CursorUseResultMixIn) 

が、これは私にこのエラーを与える::行うには明白なことだった私が間違って

File "C:\Python26\lib\site-packages\MySQLdb\connections.py", line 226, in cursor 
    return (cursorclass or self.cursorclass)(self) 
TypeError: object.__new__() takes no parameters 

何をしているのですか?

Related info herehere

答えて

3

MySQLdb.cursorsモジュールは、このようなCursorUseResultMixInを使用:

class SSCursor(CursorUseResultMixIn, CursorTupleRowsMixIn, 
       BaseCursor): 

    """This is a Cursor class that returns rows as tuples and stores 
    the result set in the server.""" 
SSCursor

文字通りの全体定義されます。

あなたが異なっBaseCursorをサブクラス化するための特定の必要性がない限り、あなただけのこのようなSSCursorを使用することができます。

import MySQLdb.cursors as cursors 
con = MySQLdb.connect(host = 'localhost', user = 'test', passwd = 'xx', 
          db = 'yy', cursorclass = cursors.SSCursor) 

PS。 cursors.SSDictCursorは、結果セットをサーバーに格納しながら、行を辞書として戻します。

PPS。 Ubuntu 11.10では、MySQLdb.cursorsモジュールは通常、/usr/lib/pymodules/python2.7/MySQLdb/cursors.pyにあります。

+0

これは、彼らがこれをやった方法を混乱させます。 –

関連する問題