« 2011年1月9日 - 2011年1月15日 | トップページ | 2011年1月23日 - 2011年1月29日 »

2011年1月22日 (土)

perl DBI executeの返り値 備忘録

今日の教訓
  「perl DBI のexecuteの返り値を使っちゃダメ」

Postgresqlのときは、SELECT文をexecuteで実行した後、その返り値をヒットした件数としてプログラムで使っていました。
Postgrtesqlではそれでうまくいっていたのですが(これ、本当に本当!)、SQLiteで同じコードを動かしてみたらうまくゆかない。
テストしてみると、SQLiteではexecuteの返り値はヒットしてもしなくても "0E0" になってます。
何じゃいこれはと調べてみると、

-------------------------------------------------------
書式
$rv = $sth->execute();
機能
executeメソッドは、prepareメソッドで用意したSQL文を実行します。
$rvには、処理した件数が返却されます。
--------------------------------------------------------

とのこと。....処理した件数って??

さらに調べてみると、MySQLでは

---------------------------------------------------------
非 SELECT ステートメントの場合、execute は影響を受けたレコードの
数を返す。影響を受けたレコードがない場合、execute は "0E0" を返す。
Perl はこの戻り値を 0 として処理するが、true とみなす。エラーが発生
した場合、execute は undef を返す。
----------------------------------------------------------

結論として、SELECTではexecuteの返り値は意味がないということですな。
またひとつ利口になりました。
   ...ぅぅ〜、あっちこっちで使っちゃてるよぅぅ。

にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村

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

2011年1月20日 (木)

SQLite perl DBI 備忘録

最近、仕事でSQLiteを使っています。これは、まったく準備いらずで使えるデータベース
環境でして、実に楽です。今まで、Postgresqlを使ったり、MySQLを使いかけたりしてい
たのですが、これらは性能や管理能力はすごいのでしょうが、色々前準備がやっかい
で、バージョンアップとかが憂鬱だったもんです。何しろ、LInuxの上にまた別の世界を
作っているようなもんですから。それに比べると、SQLiteはファイル一つですべての世界
という手頃さですから。私の場合、商売をしているわけじゃないですから、すごい能力と
か不要だし、大体CGIからアクセスするので、ネット上から直接DBSに接続するような
サーバー機能はほとんどいらないし。
perlで書いたCGIも、DBIを利用するのなら、全くPostgresqlと同じなので、データベースに
コネクトする一行だけ書き換えればOKでした。
ただし、接続を切る時、Postgresqlだと
  $sth->finish();
  
$dbh->disconnect();
で済んでいたのですが、SQLiteだと
  
closing dbh with active statement handles ...
というエラーがapacheのerror_logに出ます。
これを避けるには、上の2行の間に
  
undef $sth;
を挟むと良いようです。

にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村

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

2011年1月18日 (火)

あなたのPCでもAndroidが動く!

祝、  Android-x86 2.2リリース !!

何のことかって?
実は、いま話題のAndroidをx86パソコンで動かしてしまおうというプロジェクトがあるんです。ホームページはこちら。
   http://www.android-x86.org/

私もこんなプロジェクトがあることを知ったのは、今年に入ってからなのですが、まあ遊びのつもりで動かしてみたら、結構ちゃんと動くじゃあないですか。でも、安定版が昨年2010年の3月のAndroid 1.6(!)以来出せていないようだったので、これはもしかして死に体のプロジェクト(失礼)かと思っていたのですが、さにあらず。つい先日、1月14日に、Androiod 2.2(froyoというやつですな)がStable Releaseされました!
2.2だったら、最新のスマートフォンにも追いついてますもんね。

インストールは簡単です。ホームページからisoイメージをダウンロードし、CD/DVDに焼いてインストールディスクを作るなり、Vmware playerなどの仮想マシンで動かすなり。ちょっと試してみるだけということならば、ディスクにインストールせずにCDから起動もできます。
私の場合は、android-x86-2.2-generic.isoというイメージをダウンロードして、Vmware player3.1で仮想マシンを作って試してみました。

それでは、驚きのスクリーンショットをご覧ください。

Sscreenshotandroidx8622genericvmw_2

スタート画面です。Android携帯とか持ってないのでわかりませんが、こんな感じなんでしょうか。

Sscreenshotandroidx8622genericvmw_3

ホーム画面です。何となくそれっぽいですね。日本語表示にも対応してます。

Sscreenshotandroidx8622genericvmw_4

設定画面です。最初から、ある程度のアプリがインストールされてます。
カレンダーでgoogleと同期することもできましたよ。

Sscreenshotandroidx8622genericvmw_5

ブラウザはやっぱりchromeなんでしょうか。もちろん、ちゃんと日本語表示に対応してます。

このシステムには、日本語入力は含まれていないようなので、今のところ、下記のサイトから
  http://www.adamrocker.com/blog/302/simeji.html
simejiという、Android用の日本語入力システム(x86用)をインストールして、使わせてもらっています。これも、なかなか良いですよ。でもNote padでは日本語入力ができないようでしたが。

まあ、タッチスクリーンじゃないので使いやすくはないし、実用性については?ですが、テストに使うなら充分安定してます。後でアプリもインストールできますし。
古いノートパソコンにインストールして、Android PC を作っちゃうなんていかがでしょう。

にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村


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

« 2011年1月9日 - 2011年1月15日 | トップページ | 2011年1月23日 - 2011年1月29日 »