yadosql.exeの使い方
yadosql.exe データベース・クライアント
Access,Excelファイルの処理
最終更新日: 2009/11/03
1. yadosql.exeの役割
AccessおよびExcelのファイルをSQL命令で操作したい時に yadosql.exe を使うことができます。
標準入力・出力・エラー出力による単純なユーザーインターフェースです。
標準入力から入力されたSQL命令が実行され、その結果が標準出力・標準エラー出力に出力されます。
2. 動作環境
Windows XP, VISTA で動作します。それ以外の Windows でも、ADOがインストールされていれば動作すると思います。
Access, Excel あるいは ruby がインストールされていないパソコンでも大丈夫です。
Windowsのコマンドライン(DOSプロンプト)で動かします。
視覚障害者に使いやすいよう配慮されたソフト Altair(注)の DOS shell mode でも動作します。その場合、-f という起動オプションを指定します。
(注) ALTAIR for Windows 視覚障害者、弱視、盲ろう者のための統合フリーウェア アルティア
次のようにすれば、SQL命令を予めファイルに書いておき、それを一括して実行することができます。
C:\>yadosql.exe < input.txt ↓
input.txtは、テキストファイルです。SQL命令を記述しておきます。例えば、次のような内容です。
−−−− # データベースの作成と接続 create database TEST.MDB; use TEST.MDB; # テーブルの作成 create table tbl01 (ID int PRIMARY KEY, name varchar(30) NOT NULL, height float, birthday date, qualified yesno); # テーブルにレコードを挿入 insert into tbl01 (ID, name, height, birthday, qualified) values(1, '高橋', 172.3, #1994/10/15#, no); −−−−
(注) 半角の '#' で始まる先頭行は、コメントとして無視します。ただし、コマンドが複数行に渡って書かれている時に、第2行目以降に '#' で始まる行があってもコメントとみなさないので注意して下さい。
3. 起動の仕方
C:\>yadosql.exe ↓
と起動すれば、Yado> という入力を促すプロンプトが出ます。通常は、最初に、データベースを作る create database コマンドや、接続するための use コマンドを入力することになります。
C:\>yadosql.exe test.mdb ↓
とすると、test.mdb に接続した状態になります。test.mdbが存在しない時は、新規に作成します。直ちにSQL命令を実行できる状態になっているはずです。
○ ユーザー名とパスワードの指定
起動時にユーザー名、パスワードを指定できるようになっていますが、実質的な意味はほとんどありません。ただ、パスワードでセキュリティがかけられたファイルを操作する時は、それらを指定します。例えば、
C:\>yadosql.exe -u admin --password=xyz123 test.mdb ↓
のように起動します。
○ 起動直後に実行するコマンドをファイルから読み込む
起動時に -s または --source オプションでファイル名を指定すると、起動直後に、そのファイルの内容をコマンドとして実行します。
C:\>yadosql.exe -s A:\sql\input.txt ↓ C:\>yadosql.exe -sA:\sql\input.txt ↓ C:\>yadosql.exe --source=A:\sql\input.txt ↓
なお、ファイルの中に exit または quit という行があると、その時点でyadosql.exeが終了します。
○ ALTAIRのDOS shell modeで使う時の -f オプション
視覚障害者に使いやすいよう配慮されたソフト ALTAIR の DOS shell mode で起動する時は、逐一 出力をフラッシュする必要があるため、-f または --flush を付けて起動します。
C:\>yadosql.exe -f test.mdb ↓
この -f オプションは、通常のDOSプロンプトで起動する時に付けると、逆に出力が円滑に行われなくなることがあるので注意して下さい。
なお、ALTAIRは、起動後に「ALTキー → D → S」の3ストロークのキー入力で DOS shell mode になります。そのmodeから抜け出すには exit の4文字を入力後にエンターキーを押します。
4. 起動後の操作
起動すると、最初の「ようこそ」メッセージが出た後で、Yado> というプロンプトが出ます。
そこでキーボードからコマンドなどを打って、半角の ';' (セミコロン)に続いてエンターキーを入力すると、コマンドが実行されます。
コマンドは、複数行に渡って書くことができるので、単にエンターキーを押しただけでは実行されません。';' を入力してからエンターキーを押します。
コマンドが複数行に渡るとき、2行目以降のプロンプトは Yado> ではなく -> となります。
yadosqlを終了させたい時は、exit quit \q のいずれかを入力してエンターキーを押します。これには ';' を付けなくて大丈夫です。
また、help と打ってエンターキーを押すと、コマンドの一覧が出力されますので参考にして下さい。
以下にその一覧を掲げておきます。
- exit: 終了 [¥q, quit]
- help: ヘルプメッセージの出力 [¥h, ¥?]
- source input.txt: 入力すべき内容をファイルから読み込む [¥.]
- load input.xml table_name: xml|adtgを読み込んでテーブルを作成 [¥l]
- tee output.txt: 作業中の出力を総てoutput.txtに出力する [¥T]
- notee: teeによるファイル出力指定を解除 [¥t]
- xtee output.xml: SQLの実行結果をoutput.xmlに出力する [¥x]
- clear: 入力中のコマンドを消去する(最初から入力し直す時に指定) [¥c]
- go: 入力されているコマンドを実行する [¥g]
- system application.exe: 外部コマンドを実行する [¥!]
- create database test.mdb: データベース test.mdb を新たに作成
- use test.mdb: データベース test.mdb に接続 [¥u]
- drop database test.mdb: データベース test.mdb を削除(操作中のものは不可)
- show tables: データベース中のテーブル一覧を表示。detail付加により詳細情報
- show fields: フィールド情報の一覧を表示。テーブル名指定も可
- show error: 最新のエラーメッセージを表示
- show database: 接続中のデータベース名を表示(複数形でないので注意)
- select database(): 上と同じ
上記において、例えば source のところに [\.] とあるのは、source の代わりに \. の2文字を使うことができることを意味しています。
「source input.txt」は、「\. input.txt」と書くことができます。
「show tables」は、標準テーブルの名前を出力します。
「show tables detail」とすれば、標準テーブルと仮装テーブル(VIEW)について名前、種類、作成日時、更新日時を出力します。
「show fields」は、データベース中の総ての標準テーブルと仮装テーブルのフィールド情報を出力します。
「show fields tbl01」とすれば、テーブル tbl01 のフィールド情報を出力します。
「show database」は、現在アクセス中のデータベースの名前を出力します。複数のデータベースをまとめて管理する体制でないため、1つのデータベース名しか出力しないのでご注意ください。
5. SQL命令などの実行結果の表示
実行結果が表の形のものは、なるべく桁位置を揃えて表らしく出力します。ただ、横幅が80桁を超える時は箇条書き風に変換して出力します。
C:\>yadosql.exe < input.txt > output.txt ↓
のように出力がリダイレクトされている時は、タブ区切りの形で出力します。ただし、-f オプションを付けて起動すると、出力がリダイレクトされていても、桁位置を揃えたり箇条書き風にして出力します。
6. その他
yadosql.exeは、yadosql.rb, yado.rb, win32ole.so をパックにしてアプリケーション化したものです。exerbによってexeファイルを生成しました。
参考サイト:Exerb Project
rubyが動く環境にある場合は、yadosql.exeを起動する代わりに
C:\>ruby.exe -KS yadosql.rb test.mdb ↓
のようにしても同じです。yado.rbは、カレントフォルダまたはrubyのライブラリパスの通ったフォルダに置く必要があります。
yadosql関連のライセンスは、「GNU一般公衆利用許諾契約書(GNU General Public License)」に従います。複製や改変は基本的に自由です。著作権は T. Yoshiizumi が有します。
参考サイト: http://www.gnu.org/licenses/gpl-faq.ja.html
Copyright (C) T. Yoshiizumi, 2009 All rights reserved.
Keyword(s):
References: