Perl と SQLite についてお尋ねします。


かなりの初心者です。

まず、SQLiteですが、SQLite入門という本から「sqlite-3_2_2.zip」というのを
手に入れました。
モジュールも以下のものを準備しました。(ある事情で、モジュールはインストール
して使用することは出来ません。)モジュールを自作のPerlプログラムがあるフォルダに
置いて、

use DBD::SQLite;

と宣言して利用できないのでしょうか?

あと、「sqlite-3_2_2.zip」を解凍すると「sqlite3.exe」というファイルが出てきましたが、
これはどこに置けばいいのでしょうか?

よろしくお願いします。

Windows XP SP2
Perl ver 5.8.8
Apache HTTP Server 2.2.3
DBD-SQLite Version: 1.13

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:2007/03/15 18:04:54
  • 終了:2007/03/22 18:05:03

回答(6件)

id:bonlife No.1

回答回数421ベストアンサー獲得回数752007/03/15 19:13:22

ポイント19pt

sqlite3.exeを使ったコマンドラインの操作を行いたいのでなければ、sqlite3.exeをどこにも置かなくても全く問題ありません。

「SQLite入門」をお持ちであれば、023ページの内容を一度じっくり読んでみてください。

SQLiteはデータベースサーバーがないので、SQLiteには、いわゆるデータベースサーバーの「インストール」という作業が必要ありません。

また、DBD::SQLiteはDBI Driverです。

使い方はCPANのDBD::SQLiteにも載っているように以下のようにします。

use DBI;
my $dbh = DBI->connect("dbi:SQLite:dbname=dbfile","","");

参考になれば幸いです。

[参考URL]

id:zachouR

ご回答ありがとうございました。

sqlite3.exeというのは、コマンドラインを実行するプログラムなのですね。という事は、SQLiteのライブラリは、どこにあるのでしょうか?

2007/03/16 11:49:26
id:Iwa No.2

Iwa回答回数120ベストアンサー獲得回数62007/03/15 23:50:26

ポイント19pt

>まず、SQLiteですが、SQLite入門という本から「sqlite-3_2_2.zip」というのを

> 手に入れました。

PerlでSQLiteを扱うのにこれは不要です。

(というかあっても意味をなさない)

DBD::SQLiteがあればよいです。

しかし、通常

use DBD::SQLite;

とするのではなくDBIから使いますので、

use DBI;

my $dbh = DBI->connect("dbi:SQLite:dbname=dbfile","","");

な風につかいます。

http://search.cpan.org/dist/DBD-SQLite/lib/DBD/SQLite.pm

id:zachouR

初歩的な質問をしてすいません。

コンパイルしてインストールしなければ、SQLiteは使うことが出来ないのですね。

2007/03/16 11:50:45
id:Iwa No.3

Iwa回答回数120ベストアンサー獲得回数62007/03/15 23:55:35

ポイント18pt

すいません書き忘れです。

> ある事情で、モジュールはインストールして使用することは出来ません。

> モジュールを自作のPerlプログラムがあるフォルダに置いて、

とありますが、置くだけでは使えません。

DBD::SQLiteはコンパイルが必要になりますので素直にVC等でコンパイル(makeまたはnmake)してインストールしてください。

または、ActivePerlを使われているのならppmを使ってインストールでもいいでしょう。(ppmなら既にコンパイルされていますからVCなどのコンパイル環境は不要です)

http://homepage3.nifty.com/hippo2000/perltips/ppm.htm

id:zachouR

実は、ppm等を使ってインストールは、どうしても出来ないのです。

CGIプログラムがおいてあるフォルダを、そのまま置いて利用するしかできないので、非常に困っているところです。

2007/03/16 11:51:48
id:pmakino No.4

まきのっぴ回答回数355ベストアンサー獲得回数282007/03/16 00:33:36

ポイント18pt

SQLite は組み込み型 DB なので、Perl から使いたいのであれば、DBD::SQLite だけで使用可能で、sqlite3.exe は不要です。(sqlite3.exe はコマンドプロンプトから CUI で SQLite を操作するためのコンソールアプリケーションです)

また、DBD::SQLite は XS を使用したモジュールなので、インストール作業無しには利用できません。

root でなくても、一般ユーザ権限でも良いので、(さくらインターネットでCPANを利用する (おぼへがき)参照) シェルアクセスを許可されたサーバでインストールを行ってください。

ところで、前提の環境に Windows と書かれていますが、Windows 環境で DBD::SQLite を使いたいということでしょうか? それであれば、ActivePerl の ppm から一発でインストールすることができるのですが、それはやはりダメなのでしょうか?

id:zachouR

ありがとうございました。

「DBD::SQLite は XS を使用したモジュールなので、インストール作業無しには利用できません。」

とありますが、インストール作業無しでSQLiteを利用することは不可能なのでしょうか?

とすると、大量のデータを扱いたい場合など、他に方法はあるのでしょうか?

インストールできればいいのですが、どうしてもそれは無理でした。

CGIが入っているフォルダを置く事しかできないのです。

2007/03/16 11:54:45
id:Iwa No.5

Iwa回答回数120ベストアンサー獲得回数62007/03/16 14:49:10

ポイント18pt

> インストールできればいいのですが、どうしてもそれは無理でした。


環境(サーバー)がWindowsXPということはレンタルサーバーの類ではなく自前のものだと思うのですがなぜppmを利用するわけにはいかないのでしょうか?

もし、どうしてもというのなら最後の手段としてコンパイルだけしてインストール直前のものを置いて使うという方法があります。

コンパイル環境(注意:サーバーと同じOSかつ同じPerlのメジャーバージョンである必要ある)があるならCPANから持ってきたDBD::SQLiteを利用して、ないならPPMのActiveStateのリポジトリ(http://downloads.activestate.com/ActivePerl/Windows/5.8/)から持ってきたものを利用してください。

ただ、置くときは本来インストールした時と同じディレクトリ構成にしないといけませんのでご注意ください。

その後は↓を参考にパスを通してください。

http://hail2u.net/blog/coding/push_at_inc_and_use_lib.html

または

http://oshiete1.goo.ne.jp/qa2014499.html

id:zachouR

はい、自分もインストールできれば、購入した本をそのまま参考にできますし、非常に楽なのです。

しかし、使用する方々のスキルや状況などを考えると不可能に近いのです。自分が一台一台すべてに入れて回ることも、出来ない状態なのです。

ですから、プログラムの入ったフォルダを送るしか手だてがありません。

参考にさせていただきます!

2007/03/16 15:17:11
id:pmakino No.6

まきのっぴ回答回数355ベストアンサー獲得回数282007/03/16 14:53:07

ポイント18pt

> とありますが、インストール作業無しでSQLiteを利用することは不可能なのでしょうか?

はい、不可能です。

> とすると、大量のデータを扱いたい場合など、他に方法はあるのでしょうか?

http://q.hatena.ne.jp/1172822658#a687992

こちらの質問に似た内容がありますが、Perl 標準の DBM を使うという方法があります。

perlによる大規模データの取扱い

DBM へのアクセス

SQLite と違い、SQL での柔軟な問い合わせはできませんが、Movable Type 等も同種の DB_File DB で動作していますので、使い方次第で大量データをうまく処理することはできるはずです。

id:zachouR

ありがとうございました!

DBMの利用を考えてみます。

2007/03/16 18:37:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません