title1
navigation bar3



[ 1 | 2 | 3 |4 | 5-p1 | 5-p2 | 5-p3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 ] [日経マック連載Index ]


連載[5-3] プロと素人のスクリプトはどこが違うか


《 AppleScriptでホストを操作しちゃう 》
ところで先生、もう1つ今月のテーマがありましたよね。
先生
えっ、何だっけ?
ほらほら、AppleScriptでホスト・コンピューターのデータベースを操作しちゃうとかいう。
先生
おぉ、「DataScript」だね。
いろいろなSQLサーバーにAppleScriptでアクセスできるっておっしゃいましたよね。
それって、もしかしたらすごいことなんですか?
だって、ホストにアクセスするのってすごく大変なのよ!
へーぇ。でっ、そのDataScriptって何なんですか。
先生
下のような命令を持ったマックのアプリケーションさ(詳細はフォーサイト まで直接お問い合わせ下さい)。
これでどうやってホストにアクセスするんですか。
先生
リレーショナル・データベースをアクセスするための「SQL」という業界標準の一種の問い合わせ言語があるんだが、その命令文を上のようなAppleScriptの命令でDataScriptに渡してやると、DataScriptがホストのデータベースにそれを送って結果を取り出してくれるんだ。つまり、AppleScriptとホストのデータベースの間に入ってくれる中間ソフト(ミドルウエア)なんだね。例えば「Oracle」というSQLデータベースで検索を実行するには、図5のようにスクリプトを書けばいいんだ。
図5 Oracleでデータベース検索を行うスクリプト
先生
ここでは検索結果をaResultという変数に格納しているが、得られたデータは以下のようなリストとなる。
あのぅ〜、SQLってAppleScriptとどう違うんですか。
先生
全然別物だ。4行目の

 "SELECT empno, ename, job, sal FROM emp"

という部分がいわゆるSQLの検索文なんだね。まぁ、意味は分からんでもよろしい。要するにこうした命令文をホストに送ると,ホストがデータを返してくるんだ。

それでどんなメリットがあるんですか。
先生
おやおや、まだ分かってないのかね。ポイントは、ホストに送るんじゃなくてDataScriptに命令するだけでいいってところだ。DataScriptへの命令は「スクリプト編集プログラム」(漢字Talk 7.5には標準装備)でできるからね。
TOP

《 プログラム手段より先にソリューションを考えよう 》
と言うことはつまり…
先生
取ってきたデータの加工が自由自在なんだ。前回は何らかの手段で既にホストから取ってきてあるデータをファイルメーカーProで処理する話だったけれど、DataSctriptを使えばホストのデータベース自体で検索を済ませてからファイルメーカーProに取り込むことも可能になる。サブルーチン形式で書いてみると図6のようになるかな。
これを前回のスクリプトに応用すれば、ホストからデータを取り出す段階も含めてAppleScriptで自動化できますね。
先生
だから前回も言ったろう。プロはそうしたことも含めて全体のソリューションから考えていくんだ。プログラミング・テクニックなんて二の次さ。君達がDataScriptでSQL文を送るスクリプトを書くのは難しいだろうけど、そうしたソリューションもあるってことだけは覚えておくといいね。
図6 Oracleで検索したデータをファイルメーカーProに格納するスクリプト
そのセリフ、うちのシステム部にも言ってください。
でも先生、ホストにアクセスするならHyperCardなどでも可能ですが、それに比べてどんなアドバンテージがあるんでしょうか。
先生
それはSQL文をどうやってデータベースに送るかの違いだろうね。XCMDで送るかそれともAppleScript、というよりOSA(Open Scripting Architecture)に準拠した方法を取るか、ということだよね。表面上は大差はないかも知れないが、OSAには汎用性が飛躍的に高くなるっていう圧倒的な利点がある。
??
先生
何しろ、検索結果がAppleScriptの変数に入っちゃうんだから、後はファイルメーカーProだろうがMicrosoft Excelだろうがどんなアプリケーションにも持って行ける。マックのアプリケーションすべてがフロントエンドとして利用できることになるんだ。
アクセス速度とかはどうなんでしょうか?
先生
確かにAppleScript自体では、処理によってはちょっとばかり重い場合もありますね。まぁ「UserLand Frontier」とか、もっと処理速度が速いOSA対応のツールもあるし、後は君らのシステム部の奮闘に期待しよう。

TOP

AppleScript救急隊事務局(ASQs) info-asqs@fsight.co.jp

主催 株式会社フォーサイト   後援 アップルコンピュータ株式会社

(c)1996-2010 The ForeSight Inc. All rights reserved.Appleは、米国アップルコンピュータ社の登録商標です。
AppleScriptは、米国アップルコンピュータ社の商標です。
その他記載の会社名・製品名・ソフトウェア名は一般にその会社の登録商標または商標です。