人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: zachouR
●カテゴリ:コンピュータ インターネット
✍キーワード:Apache exe HTTP Perl SQLite
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ●
●19ポイント

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]

◎質問者からの返答

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

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


2 ● Iwa
●19ポイント

>まず、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

◎質問者からの返答

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

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


3 ● Iwa
●18ポイント

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

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

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

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

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

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

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

◎質問者からの返答

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

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


4 ● まきのっぴ
●18ポイント

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

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

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

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

◎質問者からの返答

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

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

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

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

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

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


5 ● Iwa
●18ポイント

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


環境(サーバー)が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

◎質問者からの返答

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

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

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

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


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ