下記の設定は Microsoft SQL Server ですが、少し書き換えれば他の RDB でも使えるはずです。
今回対象にしたのは, SQL Server 2005 です。
必要なものは
auto-install で入りました。なかなか便利になりました。
Management Studio は重苦しいので少し不満でした。Emacs キーバインドになりそうもありませんし。Enterprise Manager の軽さが懐かしいです。
以下設定。
.emacs
;; C-c C-c : 'sql-send-paragraph ;; C-c C-r : 'sql-send-region ;; C-c C-s : 'sql-send-string ;; C-c C-b : 'sql-send-buffer (require 'sql) (add-hook 'sql-interactive-mode-hook #'(lambda () (interactive) (set-buffer-process-coding-system 'sjis-unix 'sjis-unix ) (setq show-trailing-whitespace nil))) ;; starting SQL mode loading sql-indent / sql-complete (eval-after-load "sql" '(progn (load-library "sql-indent") (load-library "sql-complete") (load-library "sql-transform"))) (setq auto-mode-alist (cons '("\\.sql$" . sql-mode) auto-mode-alist)) (sql-set-product-feature 'ms :font-lock 'sql-mode-ms-font-lock-keywords) (defcustom sql-ms-program "sqlcmd" "Command to start sqlcmd by SQL Server." :type 'file :group 'SQL) (sql-set-product-feature 'ms :sql-program 'sql-ms-program) (sql-set-product-feature 'ms :sqli-prompt-regexp "^[0-9]*>") (sql-set-product-feature 'ms :sqli-prompt-length 5) (defcustom sql-ms-login-params '(user password server database) "Login parameters to needed to connect to mssql." :type '(repeat (choice (const user) (const password) (const server) (const database))) :group 'SQL) (defcustom sql-ms-options '("-U" "-P" "-S" "-d") "List of additional options for `sql-ms-program'." :type '(repeat string) :group 'SQL) (defun sql-connect-ms () "Connect ti SQL Server DB in a comint buffer." ;; Do something with `sql-user', `sql-password', ;; `sql-database', and `sql-server'. (let ((f #'(lambda (op val) (unless (string= "" val) (setq sql-ms-options (append (list op val) sql-ms-options))))) (params `(("-U" . ,sql-user)("-P" . ,sql-password) ("-S" . ,sql-server)("-d" . ,sql-database)))) (dolist (pair params) (funcall f (car pair)(cdr pair))) (sql-connect-1 sql-ms-program sql-ms-options))) (sql-set-product-feature 'ms :sqli-login 'sql-ms-login-params) (sql-set-product-feature 'ms :sqli-connect 'sql-connect-ms) (defun run-mssql () "Run mssql by SQL Server as an inferior process." (interactive) (sql-product-interactive 'ms))
初めは osql を使おうとしていたのですが、クエリを投げたあと戻ってきませんでした。。
osql をやめて sqlcmd に変えたらうまく動いたみたいです。
SQL Server の設定
画像のデータは定番の pubs のデータです。
osql, sqlcmd
osql, sqlcmd を単体で使う場合。>osql -U username -S servername
>osql -U usename -S servername -d pubs -i test.sqlsqlcmd も同様。
Emacs version
Emacs のバージョンは (emacs-version) してみたら"GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)でした。
of 2010-07-02 on YAMALOK"
0 件のコメント:
コメントを投稿