« 2010年4月 | トップページ | 2010年6月 »

2010年5月の3件の記事

2010-05-07

古いパソコンでも軽快

Opera

ChromeはWindows 2000にインストールできないので、Operaをインストールしてみました。

Firefoxからの乗り換えですが、非常に軽快です。
さすが「地球上で最速のブラウザ」です。

ただ、動作が不安定なのは、コンピュータのパワー不足だろうか?

XPとか7の、同じパソコン上で、ChromeとOperaを動かすと、Chromeの方が安定している気がする。

古いパソコンを120%しゃぶりつくす、あの手この手
・買い替えるべきか、買い替えないべきか!? それが問題だ!
・疲労のたまったXPパソコンを復活させよう!
・再起不能と思ったパソコンは、どうする?
・古いパソコンに第二の人生を与えよう
・こんなやり方もあった! 目からウロコのパソコン購入術

| | コメント (0) | トラックバック (0)

2010-05-04

SELECT時に連番を付ける

SELECT (SELECT COUNT(T2.ID) + 1 FROM TEST AS T2 WHERE T2.ID < T1.ID) AS NUM, T1.ID, T1.NAME FROM TEST AS T1 ORDER BY T1.ID

で、NUMとして連番がつく。

IDの降順に対して昇順の連番をつけるには、

SELECT (SELECT COUNT(T2.ID) + 1 FROM TEST AS T2 WHERE T1.ID < T2.ID) AS NUM, T1.ID, T1.NAME FROM TEST AS T1 ORDER BY T1.ID DESC
のように、第1フィールドのSELECTの条件を逆にして、全体のORDER BYにDESCを付けてやる。

CGIなどで、ページ当たりn行を出力するためには、これをVIEWなどにしておくと、レコード削除などで、IDが連番になっておらず、虫食い状態になっていても、取得することができる。

Firebirdならこんな感じだと思う。

SELECT FIRST 20 NUM, ID, NAME FROM VIEW1 WHERE NUM > 20 * 2 ORDER BY ID;
1ページ当たり20行で1ページ目をページ数0とした時の3ページ目の分のレコードを抽出する。 NUMが41から60までのレコードとなる。

ただ、条件を設定した時には、NUMも虫食いになってしまうので使えない。



| | コメント (0) | トラックバック (0)

FirebirdでLIMIT

 MySQLのLIMITのように、特定の行数分を取得する

SELECT FIRST 20 * FROM TBL ORDER BY ID;

のようにする事で、テーブルTBLのすべてのフィールドをIDの昇順に先頭から20行分を取得する事ができる。

SELECT FIRST 20 SKIP 10 * FROM TBL ORDER BY ID;

とSKIPを利用すると、先頭から10行分飛ばして20行を取得する。

これは、2.0以降のバージョンでは非推奨となっている。

2.0以降では、ROWSを使う。

SELECT * FROM TBL ORDER BY ID ROWS 20;

で先頭から20行を取得する。

SELECT * FROM TBL ORDER BY ID ROWS 10 TO 30;

とすると10行目から30行目までを取得する。
つまり、先頭から10行分飛ばして、20行分を取得する。先頭から9行分飛ばして、21行分を取得する。

参考文献
Firebird 徹底入門
Firebird日本ユーザー会 木村明治・はやしつとむ・坂井恵
翔泳社
第4章 (4.5.1) P122-P129

| | コメント (2) | トラックバック (0)

« 2010年4月 | トップページ | 2010年6月 »