2008年12月11日木曜日

PostgreSQL -- 新しいテーブルスペースを作る

PostgreSQL

新しいテーブルスペースを作ろうと思いました。
テーブルスペースのファイルをDドライブに置きたかったからです。

ちょっとSQLを書く自信がなかった(単に調べるのが面倒だった)ので、
pgAdmin III を立ち上げて、「編集」メニューから「新規オブジェクト」で「新しいテーブル空間」を選ぶ。

「名前」をつける
「ロケーション」に D:/Robot/db と入力する
「オーナー」に postgres を選択する
--この作業を※1と呼びます

さて、出来るかな… …出来ない!

どうやら、postgres さんには、上記ロケーション(パス)に対する書き込み権限がないらしい。

使用しているOSは windows xp home edition なので、フォルダのプロパティで権限を設定できない。

でも、同じことを考えている人はいるもので…


結局のところ、コマンドプロンプトから
cacls D:\Robot /T /E /C /G postgres:F
と打つと、権限を与えることが出来ました。
--この作業を※2と呼びます

(正解を出す前に間違った設定をしてしまったらしく、
Dドライブにアクセスできなくなってあせりました。
そんなときも、落ち着いて、
cacls D: /T /E /C /G owner:F
で、権限を取り戻しましょう。)

さて、では、気を取り直して、
※1の作業をやると… …こんどは出来ました!


で、pgAdmin で「ファイル」メニューから「サーバーの追加」を選択。
「名前」に※1でつけた名前を入れ、
「ホスト」に localhost と入れて
「ユーザー名」に postgers を選択、
「パスワード」も入力して(これをしなかったので後でちょっと困りました)
OKボタンを押しましょう。

はい、つながりました。

気をよくしたので、ついでにデータベースも作っちゃいましょう。
同じく pgAdmin で、
「編集」メニューから「新規オブジェクト」で「新しいデータベース…」を選ぶ。

適当に入力すれば出来ますね。
ただ、「テーブル空間」に さっき作った新しいテーブルスペースの名前を選びましょう。
今回は robot という名前を付けました。

ここで気が付いたんだけど、元々あるデータスペースにも新しいデータベースを作るときに、さっき作った新しいテーブルスペースの名前が選択できるんですね。



ふむふむ。
では、新しいデータベース robot をいじり倒すために、どうすればいいのか調べましょう。


実験の結果、できました。

まず、スタートメニューのすべてのプログラムにある「postgreSQL 8.3」の実体のフォルダにアクセスします。
「'postgres'へのpsql」のショートカットをコピーします。
「リンク先」の内容を次のように修正します。
"C:\Program Files\PostgreSQL\8.3\bin\psql.bat" -h localhost -p 5432 robot "postgres" SJIS

ついでに、「コメント」の内容も次のように修正します。
PostgreSQLインタラクティブ・ターミナルで、「robot」データベースに接続します。


これで、巨大なDドライブにでっかいテーブルを作成できるようになりました。

めでたし めでたし!


2008年12月9日火曜日

PostgreSQL -- PL/pgSQL を使うために

PL/pgSQL を使うために必要なことがありました。

インストールしただけだと、PL/pgSQLが使えないのでした。

そこで、このページ<PostgreSQL 編19 - ストアドファンクション、function、PL/pgSQL、トリガー>を参考にして…



1 俺の場合は、Windows xpでPostgreSQLを使っているので
   スタートメニューのすべてのプログラムにあるPostgreSQL 8.3 の
   「コマンド・プロンプト」ショートカットを実行します。

2 createlang -h 127.0.0.1 -d postgres -U postgres plpgsql
   と、入力して、エンターキーを押します。

3 パスワードを聞いてくるので、入力して、エンターキーを押します。

「'postgres'へのpsql」の画面から
select * from pg_language
を実行すると、登録されているLANGUAGEを確認することができます。


これでようやく、↓みたいな文を書くことが出来ました。

PostgreSQL 8.3.1文書 38.6. 制御構造 例 38-1. UPDATE/INSERTの例外から抜粋
CREATE OR REPLACE FUNCTION getAllFoo() RETURNS SETOF foo AS
$BODY$
DECLARE
r foo%rowtype;
BEGIN
FOR r IN SELECT * FROM foo
WHERE fooid > 0
LOOP
-- can do some processing here
RETURN NEXT r; -- return current row of SELECT
END LOOP;
RETURN;
END
$BODY$
LANGUAGE 'plpgsql' ;

SELECT * FROM getallfoo();

2008年12月8日月曜日

PostgreSQL -- ファイルからpsqlを実行する方法

PostgreSQL 

Windows xpでPostgreSQLを使っています。

今日はちょっとしたメモを。


ファイルからpsqlを実行する方法:


1 スタートメニューのすべてのプログラムにあるPostgreSQL 8.3 の
        「'postgres'へのpsql」ショートカットを実行します。

2 パスワードを入力して開始します。

3 \cd 'D:\\ddddd\\ddddd'    --これにより実行したいファイルの入っているフォルダに移動します。
      バックスラッシュを2重にするのがポイントです。

4 \i fff.sql     --これにより指定したファイル(ここでは fff.sql )を実行します。


2008年12月1日月曜日

KHR-2HV体は完成

いやいやいや
出来ましたよ、

先週PCがあれば、先週出来ていたでしょう。
所要時間は大体6時間から8時間くらい。
塗装もしなかったし、接着剤が乾くのを待つこともない。
間違えてもビスをはずせばいいだけだし。
なので、昔のプラモデルより簡単かも。


で、記念写真:

まず1枚目は、定番で正面から。
後ろになにやらペコポン侵略中(建前上)な顔がありますが…


胸の位置に見えている薄緑のものがバッテリーです。


次はあまり見ないであろう、後ろから。
後ろのカバーの中はコードだらけで
コントロールボードがこの線の下にあるんですが
まったく見えませんねー。

実際、パイロットランプが光っているのを見るのがやっとの状態です。


お次は左斜め前から。
後ろの2段重ねの緑の顔は、
最近「ミロ」を侵略した小隊の隊長です(ロボットと関係ないけど)。


最後は座っているところを。
手におもちゃの自動車を持っています。


当然お気づきだとは思いますが
足と腕が同じ太さなんですよ。
片足で立てるなら、片手で逆立ちとか出来そうですが
どうでしょうねー

ちなみにこの撮影の後でサンプルモーションを読み込ませて
2歩半歩きました。が、我が子の初めて歩いた瞬間はビデオに収められないのと同じで
撮っていません。。。。

電圧低下時に自動起動するモーションというところに、
こけそうにうなだれるモーションを作って設定したら
設定した瞬間にうなだれてやんの!

電池の持ちが問題です。

有線での電源供給を考えようかなぁ。


ともかく、このように体は完成しましたが
まったく何のセンサーもなく、当然目も耳もなく
脳みそもありません。

電源を切ってしまうと、意外に関節がやわらかく動きます。
ずしっと重くて、くて~っとやわらかいヒト型のモノって
なんだか不思議な感覚をもたらします。
無生物なのに、そうじゃない感覚になります。

ちょっとでも自立的に動いたら、もっと生き物みたいに感じる気がします。

加速度センサー、ジャイロセンサーは、オプションであるんですが
足の裏につけたい感圧センサーや
目にしたいカメラ、耳にしたいマイク、口にしたいスピーカーなどは、
自力でひっつけるしかないようです。

あー、金ねえな(泣)