最近、私はmysql.connectorを使用して複数のセミコロンの記述文を1つのクエリで実行する必要があるPython 2.7xプロジェクトを作成しました。これはこのpost.でうまく説明されています。複数のクエリを実行するためにMySQL.connectorを使用する
しかし、現在のプロジェクトではTwistedのmysql.connectorを使用する必要がありました。これはTwistedの優れたenterprise.adbapiモジュールを使用して、新しいブロッキングデータベース接続を非ブロック化することを意味します。
コンフィグ= { "ユーザ":ユーザ名、 "パスワード":パスワード、 "ホスト":ホスト名、 "データベース":データベース名、 "raise_on_warnings":真} CP = adbapi.ConnectionPool( "のMySQL。コネクタ "、** config)
私のテストステートメントは以下のように定義されています。私は彼らが軽蔑的な例であることをお詫びしますが、私は期待した結果を知っています。そして、私は複数のステートメントの結果を得ていることを確認するだけで十分です。
:私は今のConnectionPoolメソッド.runQuery()def _print_result(result): if result: print("this is a result") print(result) else: print("no result") reactor.stop() d = cp.runQuery(statements, multi=True) d.addBoth(_print_result)
これは私に次のような結果を得るを実行しようとすると、
statement1 = "SELECT * FROM queue WHERE id = 27;" statement2 = "SELECT * FROM order WHERE id = 1;" statement_list = [statement1, statement2] statements = " ".join(statement_list)
は問題が来ます
これは結果です[Failure instance:トレースバック::フェッチ元の結果が設定されていません。
Twistedのadbapiモジュールを使用して、私が知っている結果を得るにはどうすればよいですか?