AccessでPostgreSQLを操作する方法
- 暫定的なメモ。
何が出来るようになるのか?
「データベースサーバーを利用することで、複数の人がデータを操作することが出来るってこと!」
しかも、PostgreSQLは無料なので設備的なコストがかからないってメリットがある。
あと、PostgreSQL8.1からは、あまり評価の高くなかった「バキューム」が自動的に行われるようになった*1。
そして、早い!
まずは、PostgreSQLをインストール!
「pg_hba.conf」をおもむろに開く。(Windows版の場合はpgAdminIIIがあるので、空行でダブルクリックするとダイアログボックスが開きます)
んで、LAN内のPCからアクセスできるように次の呪文を唱える。
「host all 192.168.0.0 255.255.255.0 trust」
この呪文は、ローカルネットワークのIPアドレス192.168.0.1から192.168.0.255までのPCからの接続が許可されます。
その他必要な設定を行うこと。
PostgreSQLでデータベースを作成する
アカウント作って、データベースを作成しましょう。
PostgreSQLの8.1以降は「ユーザ名」の代わりにロールで管理することが出来ます。
良くわからんってかたは、ユーザの追加でやってれば良いんジャマイカ?
http://www.postgresql.jp/document/pg811doc/html/user-manag.htmlを参照のこと
ODBCのドライバのインストール
PostgreSQLをインストールすれば自動的にDOBCが入るんですが、
http://www.postgresql.org/download/ ここからDLする事も出来ます。
取りあえずDBを作成しちゃいましょう。作成は「test」でOK。
Windows版をご利用の場合「pgAdminIII」があるので、そっからやると簡単。
ODBCの設定方法
「スタート」-「コントロールパネル」-「管理ツール」と選択していきます。
んで、「データソース(ODBC)」ってのをエグルようにダブルクリックです。
ODBCデータソースの画面が開くと思います。
ここで、「ユーザーDSN」か「システムDSN」に登録をするわけですが。自分のPCに他ユーザがいてそっちのアカウントでも利用したい! と言う場合(AdominとUserなんかで別管理している場合とかね)は、「システムDSN」に追加すると良い感じ。逆にユーザ一人だけってばあいは、「ユーザーDSN」に設定で良い感じだと思います。
- 「追加」ボタンをクリック。
- データソースの新規作成ダイアログボックスが表示されます。
- ダイアログボックス内から表示されているリストから、「PostgreSQL UNICODE」を選択します。
- 完了ボタンを選択。
- リストに追加されたはず。
- リストから追加した奴を選択し、「構成」ボタンをクリック。
- PostgreSQL Unicode ODBCセットアップ ダイアログボックスが表示されます。
- データソース名は分かり易い名前を付けましょう。
- SSL Modeについては「無効」にしておくと良いかも。
- サーバー名は自分のPCに保存してあるのならば、「localhost」をそれ以外であれば、IPアドレスを設定します。
- データベース名はPostgreSQLで作成したものを
- 規定の認証は、PostgreSQLで設定したユーザ名またはロール名を設定します。
- 設定できたら「テスト」ボタンをクリックしてアクセスしてみましょう。
- 成功すると、「Connection successful」と表示されるはず。
- 設定が完了したら「保存」ボタンをクリック。
- 他のウィンドウも閉じちゃってOK
PostgreSQLにテーブルを作成する
CREATE TABLE t_kokyaku ( f_id serial, f_sei text, f_mei text, f_age int ); -- データの挿入 INSERT INTO t_kokyaku ( f_name, f_hurigana, f_age ) VALUES ( 'yamada', 'tarou', 29); INSERT INTO t_kokyaku ( f_name, f_hurigana, f_age ) VALUES ( 'murata', 'jirou', 25); INSERT INTO t_kokyaku ( f_name, f_hurigana, f_age ) VALUES ( 'tamura', 'hanako', 23); INSERT INTO t_kokyaku ( f_name, f_hurigana, f_age ) VALUES ( 'tayama', 'saburou', 32); -- シリアルの更新 SELECT SETVAL('t_kokyaku_id_seq',max(id)) FROM t_kokyaku ; -- 今作成したデータを表示 SELECT * FROM t_kokyaku ;
取りあえずコイツを流し込んでテストするのですYo!
pgAdmonIIIでやっちゃえば多分楽ちん。
リンクテーブル
リンクテーブルってのは、PostgreSQLサーバーにアクセスしてテーブルのレコードを引っ張り出してくれる機能。ここが今回のキモに当たります。
- ファイル-外部データの取り込み-テーブルのリンク と選択します。
- ダイアログボックスが表示されるので、まずはファイルの種類を「ODBC Database()」を選択します。
- そうすると、データソースダイアログボックスが開くので、使用するデータソースを選択します。
- ユーザ(ロール)の設定に問題がなければPostgreSQLのサーバーにあるテーブルが一覧表示されますので、必要なテーブルを選択してOK!
- いつものテーブルアイコンと違ったアイコンですが、ダブルクリックをすると、自動的にサーバーにアクセスしてテーブル内の情報を表示します。
取りあえずこいつを使えば何とかなるかも?
*1:あ、デフォルトではFalseになってるから手動で設定しないといけないけど