Perl では DBI というデータベースへのアクセス機能を提供するインターフェイスを利用できます。 DBI のインストール方法については CentOS で Perl から SQLite を使えるようにする に記してあるので、参考にしてみてください。 今回は、DBI を用いて SQLite を使用する方法について記します。
なんとか上手くいく方法はないものかと。 基本的には、Perlの内部形式の考え方をおさらいする形になった。 プログラムで扱う前にdecode、出力するときはencodeする。 それは、標準入出力だろうが、データベースだろうが、同じ扱い、ということ。 SQLiteはutf8の入出力が(少なくともver3.6.13では)可能のようだ。 まずは出力の時、データベースに渡すステートメントは「Encode::encode_utf8」してから出力する。 そして入力の時、つまり、データベースからデータを取る時は、とって来た後に「Encode::decode_utf8」する。 イメージは下の図。 今回は出力だけなのでSTDINは使っていないが、binmode STDOUTをencodingで使う場合は、あわせて指定しておくのが定石だと思われる。 | |→(binmode STDIN )→| |→(e
前回のをencode/decodeを使って書き換えてみました。 『from_toはバイト文字列をバイト文字列に変換するのでよくないです』、とのご指摘もありましたので…。 use strict; use warnings; use DBI; use Encode; use utf8; binmode STDOUT, ':encoding(shiftjis)'; # メモリ上のデータベースへ接続 my $dbh = DBI->connect("dbi:SQLite:dbname=:memory:"); # ディスク上のデータベースへ接続 #my $database = 'test.db'; #my $data_source = "dbi:SQLite:dbname=$database"; #my $dbh = DBI->connect($data_source); my $create_tab
Perl › データベース › here Perlを使ってデータベースは初級者が学ぶには今までは少し敷居の高いものでした。まずSQLの実行環境を構築する必要がありすぐに勉強したいという需要を満たすことはできていませんでした。 ですが現在はこの状況は変わりました。現在ではActivePerlをダウンロードするとDBD::SQLiteと呼ばれるSQLiteを利用するためのモジュールがパッケージングされています。 またデータベースに接続するためのユーザから見たインターフェイス部分にあたるDBIというモジュールもパッケージングされています。 ですのでActivePerlの最新版をダウンロードするだけで何の環境構築も行わないでデータベースを学習し始めることができます。 DBD::SQLiteとDBIがインストールされていることを確認する まずDBD::SQLiteとDBIがインストールされているかど
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く