【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
Windows TIPS
[Office Master]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

データベース・サーバに直接コマンドを発行する

解説をスキップして操作方法を読む

山田 祥寛
2003/10/11
 
対象ソフトウェア
Access 2000
Access 2002
ODBCを利用すると、AccessからMySQLやPostgreSQLなどのデータベース・サーバに接続し、データの入力や更新を行うことができる。
しかし、「リンクされたテーブル」は通常のテーブルと異なり、テーブルを直接削除したり、テーブルの構成情報を変更したりすることができない。
そのようなことをAccessから行いたい場合には、パススルー・クエリを利用すると便利である。
 
解説

 「TIPS―データベース・サーバのフロントエンドとしてAccessを利用する」では、MySQLやPostgreSQLなどバックエンドのデータベース・サーバに対するユーザー・インターフェイスとして、Microsoft Accessを利用する方法を紹介した。

 これによって、データの登録・更新などに際しても、いちいちコマンド・プロンプトからSQLコマンドを入力する必要がなくなり、便利になったはずだ。しかし、そこで紹介した「リンクされたテーブル」は通常のテーブルと異なり、テーブルを直接削除したり、デザイン・モードでテーブル・デザインを変更したり(フィールドの追加や桁数・属性の変更など)することができない。

 では、データベースの構成情報を変更したい場合には、いちいちコマンド・プロンプトを開かなければならないのだろうか。

 答は「否」である。

 Accessではリモートのデータベース・サーバに対して直接コマンドを発行する「パススルー クエリ」というしくみが用意されている。これを利用することで、データベース・サーバ上のテーブル削除や定義変更といった処理も、Access上で扱えるようになる。

 それではさっそく、設定までの流れを見てみることにしよう。接続するデータベース・サーバによって手順には若干の差があるが、ここでは軽量かつシンプルな機能が特徴であるMySQLサーバを例にとってみる。MySQLサーバ自体のインストールやユーザー設定などについては割愛するので、IT Linuxフォーラムの「MySQLインストール完全ガイド」や、筆者の運営する「サーバサイドの学び舎 - WINGS」サイトの「サーバサイド環境設定」などを参考にしてほしい。


操作方法

手順1―空の「.mdb」ファイルから新規にパススルー・クエリを作成する

 Microsoft Accessで新規のデータベースを開き、[クエリ]タブから[新規作成]をクリックする。「クエリの新規作成」ダイアログが表示されたら、「デザイン ビュー」を選択し、[OK]をクリックする。

クエリの新規作成
新規作成されたクエリ。
  デフォルトでは[選択クエリ]になっている。

手順2―パススルー・クエリに切り替える

 デザインビューでは初期状態で「選択クエリ」になっているので、メニュー・バーから[クエリ]-[SQL]-[パス スルー]を選択する。

SQLパススルー・クエリ
SQLパススルー・クエリ・モードに変更すると、SQL文を入力する画面になる。
  ここにSQL文を入力する。

 すると、上のような「SQLパススルー クエリ」画面に切り替わるはずだ。ここに、データベース・サーバに対して発行したいSQLコマンドを入力してみよう。例えば新規のmasterテーブルをデータベース・サーバに作成するには、次のように入力する。

CREATE TABLE master(id INT NOT NULL PRIMARY KEY, title VARCHAR(50));

手順3―パススルー・クエリのプロパティを設定する

 ただし、パススルー・クエリはこのままでは実行できない。パススルー・クエリを実行するには、まずデータベース・サーバに対して接続を確立しなければならない。

 メニュー・バーの[表示]−[プロパティ]を選択し、「クエリ プロパティ」を表示させてみよう。

クエリ・プロパティの設定
パススルー・クエリを実行するためには、ODBCデータソースへの接続を設定しておく必要がある。
  これをクリックすると、ODBC接続のための設定を簡単に行うことができる。

 最低限、設定しなければならない項目は以下のとおりである。

項目 概要
ODBC接続文字列 データベース・サーバへの接続設定。直接に接続文字列を入力してもよいが、[...]をクリックして、GUI画面上から設定を行うと便利である。設定方法については、「TIPS―データベース・サーバのフロントエンドとしてAccessを利用する」を参照
レコード表示 結果を表示するかどうかの設定。SELECTやSHOWのように何らかの結果セット(レコード)を返すコマンドを発行する場合には[はい]を選択。CREATE TABLEのように結果を返さないコマンドについて、[はい]を選択した場合には警告メッセージを返す(エラーではない)

 そのほか、取得する最大レコード数やコマンドのタイムアウト時間を設定することも可能である。

手順4―パススルー・クエリを実行する

 以上の設定ができたら、メニュー・バーから[クエリ]−[実行]を選択する。テーブルが正常に作成されたかどうかは、「TIPS―データベース・サーバのフロントエンドとしてAccessを利用する」を参考に、テーブル・リンクを行って確認してみてほしい。

 もちろん、パススルー・クエリで実行できるのは、CREATE TABLE(テーブル作成)だけではない。データベース・サーバに対して発行できるコマンドのすべてを実行することができる(ただし、接続ユーザーがコマンドの実行権限を持っていることが前提である)。

 だが、これらSQL命令については本題から外れてしまうため、本稿では割愛する。詳細については、@IT Master of IP Networkフォーラムの「連載 SQL実践講座」などを参考にしてほしい。End of Article

この記事と関連性の高い別のWindows TIPS
データベース・サーバのフロントエンドとしてAccessを利用する
AccessをMSDEのフロントエンドとして利用する
Excelと外部データベースとを連携させる
これだけは覚えておきたい、コマンド・プロンプトの使い方
PowerShellでテンプレートを使ってメールを一斉配信する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています