Sublime Textには、スピード、使いやすさ、クロスプラットフォームで人気のある、いわゆる拡張機能が豊富にあります。 すべての味と色のパッケージとプラグイン。 しかし、SQLクエリを呼び出すためのプラグインは見つかりませんでした(間違っている場合は、共有していただければ幸いです)。 まあまあ、いいえ-問題ありません、あなた自身で書きます。
ドキュメントを読んで、いくつかの例を見てから始めましょう 。
プラグインは非常に簡単に機能します。リクエストを選択し、組み合わせを押すと、結果が新しいウィンドウに表示されます。
まず、新しいプラグインを作成しますツール->新しいプラグイン
import sublime, sublime_plugin class ExampleCommand(sublime_plugin.TextCommand): def run(self, edit): self.view.insert(edit, 0, "Hello, World!")
すぐにOquery.pyという名前で名前を付けて保存しますが、SublimeはUserフォルダーに保存するように提供していますが、OqueryフォルダーのPackagesフォルダーに1レベル上位に保存します。
ベースと通信するには、 cx_Oracleクラスが必要です。 ダウンロードしてOQueryフォルダーに戻り、その中にlibフォルダーを作成します。このフォルダーに必要なライブラリーを格納します。 その中に、ダウンロードしたアーカイブをcx_Oracleフォルダーに保存します。
リクエストレスポンスを素敵なテーブルの形式で提供したいのですが、このためにすでに適したプラグインがあります。 同じことを行います。フォルダをダウンロードして解凍し、prettytableに名前を変更します。
データベース設定を保存するには、Oquery.sublime-settigs構成ファイルが必要です。 それを作成し、プラグインのルートフォルダーにコンテンツと共に保存します(例):
{ "host" : "localhost", "port" : 1521, "dbname" : "demoDB", "username" : "user1", "password" : "pass" }
これで、プラグイン自体を作成することになりました。
ファイルの先頭で、エンコードを宣言し、データベース自体へのコネクタや出力プレートのライブラリなど、必要なモジュールをインポートします
# coding=utf-8 import sys import os sys.path.append(os.path.dirname(sys.executable)) sys.path.append(os.path.join(os.path.dirname(__file__), "lib","cx_Oracle")) sys.path.append(os.path.join(os.path.dirname(__file__), "lib","prettytable")) import sublime import sublime_plugin import cx_Oracle import unicodedata import prettytable
行
sys.path.append(os.path.join(os.path.dirname(__file__), "lib","cx_Oracle")) sys.path.append(os.path.join(os.path.dirname(__file__), "lib","prettytable"))
ライブラリを探す場所を崇高に伝えます。 プリティテーブルSublimeを接続するとき、私はunicodedataモジュールが存在しないことを誓いましたが、Sublimeには非常にunicodedataモジュールの場所がわからないというバグがあるため、単純にインポートしてもエラーは解消されませんでした。 あまりグーグルではない、私は行を追加することで解決策を見つけた
sys.path.append(os.path.dirname(sys.executable))
そして、問題は解決されています。
チーム自体に到達する
class OqueryCommand(sublime_plugin.TextCommand): def run(self, edit): # view view = self.view # region = view.sel()[0] if not region.empty(): # , selection = view.substr(region) try: # Oquery.sublime-settings settings = sublime.load_settings('Oquery.sublime-settings') # db = cx_Oracle.connect(str(settings.get('username')), str(settings.get('password')), settings.get('host')+':'+str(settings.get('port'))+'/'+settings.get('dbname')) except cx_Oracle.DatabaseError, e: sublime.message_dialog(str(e)) else: # cursor = db.cursor() try: # cursor.execute(selection) except cx_Oracle.DatabaseError, e: sublime.message_dialog(str(e)) else: # pt = prettytable.from_db_cursor(cursor) # tableStr = pt.get_string() # output = view.window().new_file(); # output.insert(edit, 0, tableStr) else: sublime.message_dialog('Select a proper SQL query')
以上です。 しかし、チームに挑戦するための組み合わせを宣言する必要もあります。 これは非常に簡単に設定->キーバインディングユーザーで行われます。 そして、それに1行を追加します
[ { "keys": ["ctrl+o", "ctrl+r"], "command": "oquery" } ]
プラグインは(ctrl + o)+ rの組み合わせで機能します。 別のものを選択できます。
これですべてのリクエストが選択され、ボタンを押すだけで新しいウィンドウに回答が表示されます。 それは素晴らしいことではありませんか?
必要に応じて、他のデータベースにすべてをやり直すことができます。
だれに怠iness、私はアーカイブを同封します