5

MySQL Workbench で Python スクリプト環境から SQL クエリを実行したいと考えています。grt モジュールの MySQL Workbench ドキュメントを調べたところ、executeScript メソッドが見つかりましたが、それを使用してクエリを作成することはできないようです。

次の Python コードを実行します。

import grt

querystring = "select * from Purchases WHERE PurchaseAmount > 600 and PurchaseAmount < 2500"
executeScript(querystring)

次のエラー メッセージが生成されます。

Uncaught exception while executing [filepath]runquery.py:

File "[filepath]runquery.py", line 10, in <module>

executeScript(querystring)

NameError: name 'executeScript' is not defined

virtual grt::ListRef executeScript ( const std::string & sql )の意味がわからないため、クエリを適切にフォーマットできませんが、エラー メッセージは executeScript メソッドが存在しないことを示しているようです。私が見ているほとんどのドキュメントには、正しい形式の関数呼び出しの例がありますが、executeScript の例は見つかりません。

私がやりたいことは、文字列を MySQL Workbench Python スクリプト環境内で文字通り SQL クエリとして実行することだけです。

ありがとうございました!

私はPythonとSQLが初めてなので、しばらくお待ちください。:)

4

3 に答える 3

3

executeScript 関数を実行するには、sqleditor オブジェクトを操作する必要があります。テストのために、サンプル データベースを使用して MS Windows で次の手順を実行します。

  1. MySQLWorkbench を起動します
  2. ローカル データベースに接続する
  3. SCHEMAS から sakila を選択
  4. [ツール] -> [スクリプト シェル] または (Ctrl+F3) でスクリプト シェルを開始します。
  5. 新しい python スクリプト (test.py) を追加
  6. 以下の内容でスクリプトを保存します
  7. スクリプト シェルでスクリプトを実行する

スクリプトの内容:

import grt

result = grt.root.wb.sqlEditors[0].executeScript("select * from actor limit 10;")

for col in result[0].columns:
    print col.name

スクリプトでオブジェクトを参照する方法を見つけるには、グローバル ツリー パネルのクラス ブラウザを使用し、オブジェクトを右クリックして [Python のパスをコピー] を選択するのが非常に簡単です。

于 2014-02-21T11:39:47.403 に答える