2005年03月24日

PHP-5.0.3からFireBird1.5.2にアクセス(PEAR:DB編)

勢いでPEAR::DBを使っても試してみました。

require_once("DB.php");
$db=DB::connect("ibase://sysdba:パスワード@localhost/opt/firebird/data/hogehoge.fdb");
echo "db:" . $db->toString() . "
" ;
$stt=$db->prepare("SELECT * FROM TEST");
$rs=$db->execute($stt);
while($row=$rs->fetchRow(DB_FETCHMODE_ASSOC)){
echo $row['ID'] . ":" . $row['DATA'] . "
";
}
$db->disconnect();

表示はしたもののapacheのエラーログには
PHP Warning: Unknown: invalid statement handle in Unknown on line 0
が表示(大丈夫かな・・・)
posted by hoto at 22:48| 東京 ☀| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

PHP-5.0.3からFireBird1.5.2にアクセス

Vine3.1+FireBird1.5.2+PHP-5.0.3の環境でDBに接続できるか試してみました。
※local内で完結した環境です。

事前にIBConsleでTESTと言うテーブルを作成してデータを登録しておきました。

firebird_sql_exec("select * from TEST");
return;
function firebird_sql_exec($sql){
$dataArr = array();
$host = "localhost:/opt/firebird/data/hogehoge.fdb";
$username = "sysdba";
$password = "hogehoge";
$dbh = ibase_connect($host, $username, $password);
$sth = ibase_query($dbh,$sql);
while($row = ibase_fetch_object($sth)){
echo $row->ID . $row->DATA . "
";
}
ibase_free_result($sth);
ibase_close($dbh);
return;
}
※echo $row->ID . $row->DATAのIDとDATAはテーブルのフィールド名で大文字の必要がありました。試しに小文字にすると
PHP Notice: Undefined property: stdClass::$id in /usr/local/apache2/htdocs/FireBird_Test/index.
php on line 13
と言うエラー発生が発生しました。
posted by hoto at 22:44| 東京 ☀| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2005年03月23日

IBConsoleを利用したリモート管理

Vine3.1にインストールしたFireBirdをWindowsから管理したいと思いIBConsoleをWindowsにインストールしてみました。
IBConsoleを起動するとGDB32.dllがないと怒られてしまった。
以前はWindowsにFireBirdをインストールしていたのであまり悩まずにIBConsoleが起動できたのですが今回は簡単にいかないようでした。

gdb32.dllがWindows版FireBirdに付属していると思ったら見つからず、インターネットで調べてみたところここで答えを発見。
Windows版FireBirdを解凍して
早速 C:\hogehoge\Firebird\bin>instclient.exe i g
を実行することでgdb32.dllをインストールしてIBConsleを起動することができました。

ふー。あせあせ(飛び散る汗)
posted by hoto at 23:25| 東京 ☔| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年07月28日

IBwebAdmin0.98インストール

IBOConsoleの代わりにブラウザでFirebirdを管理できるようにIBwebAdmin0.98をインストールしてみました。

自分の環境は
WindowsXP Pro
Firebird1.5
Apache2.0.49
PHP5.0.0(今回インストール)
IBwebAdmin0.98(今回インストール)

で、全て同一PCで完結している環境です。

既にApacheはインストール済みなので必要なPHPのインストールから。

【PHPインストール】
とりあえずこちらを参考にインストール

【IBwebAdmin0.98インストール】
こちらを参考にしてインストール

1.IBwebAdminを解凍したフォルダをWWWルートにコピー

2.php.ini設定

extension_dir = "phpインストールフォルダ\ext"を設定

extension=php_interbase.dllのコメントをはずす

セッション保存場所を指定
session.save_path = "d:\hogehoge\Apache2\tmp"


D:\hogehoge\Apache2\htdocs\ibWebAdmin\inc\configuration.inc.phpを修正(下記全部変更後)

--------------ここから--------------
・FB実行モジュールバス
define('BINPATH', 'D:/hogehoge/Firebird_1_5/bin/');
・セキュリティDB
define('SECURITY_DB', 'D:/hogehoge/Firebird_1_5/security.fdb');
・テンポラリファイル
define('TMPPATH', 'd:/tmp/');
・デフォルトユーザID
define('DEFAULT_USER', 'hoge');
・デフォルト接続DB
define('DEFAULT_DB', 'hoge.FDB');
・デフォルトDBファイル保存フィルダ
define('DEFAULT_PATH', 'D:/hoge/firebird_db/');
※ディレクトリ最後の/は必要

・デフォルト接続先
define('DEFAULT_HOST', 'localhost');
・デフォルトDBキャラクタコード
define('DEFAULT_CHARSET', 'UNICODE_FSS');
※自分の場合はUTF-8を指定

・バックアップ時保存先
define('BACKUP_DIR', d:/hogehoge/backup/');
・画面表示言語
define('LANGUAGE', 'japanese');

--------------ここまで--------------

http://127.0.0.1/ibWebAdmin/
で画面がでてDBにログインできれば成功。
ちなみに自分の場合、URLでホスト名でアクセスすると日本語にならない?設定ミスかな・・・。

日本語が使えるかとりあえずテストテーブルを作成して日本語データを扱ってみたのですが入力・表示とも問題ありませんでした。

またテーブル選択時、表タイトルが文字化けしてしますがエンコードし直すと正しく表示しました。(UTF-8が選択されているのに再度UTF-8を指定)

【補足】
system32にあるGDS32.DLLをPHP付属のgds32.dllに入れ替えるとIBOConsoleからログインできなくなりました。当然逆に入れ替えるとIBwebAdminがやっぱりログインできなくなったのでさわらない方がいいのかな・・・。





posted by hoto at 17:40| 東京 ☁| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年07月14日

Bfitソフト定義ツール、DBフィッタ定義

TIMEFUL SYSTEMからFirebird/InterBaseに対応した「使えるデータベースを手軽につくる」ことを目的にした汎用ソフトウエアが公開されました。
テーブル定義から検索や色々な機能があるようです。
Bfit(ビーフィット)を利用するためにはBfit/定義ツールもインストールが必要なようです。
試しに作成したテーブルを検索する設定をしてみたのですが、利用法がちょっと慣れるまで難しそう。
使えるようになればとても便利そうなのですが・・・。
posted by hoto at 19:19| 東京 🌁| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年06月24日

テキストファイルに作成したSQL文の流し込み

テストデータを登録する際、事前にSQL文を記述したテキストファイルで作成しておいて一括して流し込みたいと思っていました。
どうやら
SQL>input c:\hogeho\hogehoge.txt;
とやるだけでよいようです。

テーブルの作成から含めてやる場合は、isqlでdbにログインした状態でCREATE TABLE文からテキストファイルに記述しておけばできるようです。
posted by hoto at 18:31| 東京 🌁| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年06月23日

実際にオートナンバーを試してみる。

せっかくなのでテストDBで自動的に番号が設定されるか試してみました。
今回はIBOConsole上で全て操作してます。

(1)ジェネレータの設定
ツリー表示からジェネレータを選択してジェネレータ名と値を設定します。自分の場合は、
ジェネレータ名:GEN_USER_ID
値:0

(2)トリガーの設定
・該当のテーブルを選択してダブルクリックか右クリックのプロパティを選択

・ツールバーにトリガーがあるのでクリックしさらに右クリックから作成を選択

設定した項目は
Name:SET_USER_ID
Table:hogehogeが選ばれているのでそのまま
Type:before insertを選択
Description:このトリガーの説明を記入
Position:デフォルトのまま
State:デフォルトのまま
As:以下参照

------------------以下As文------------------
AS BEGIN
NEW.hogehogeカラム名 = GEN_ID(GEN_USER_ID,1);
END
------------------ここまで------------------

・左下にあるCompileボタンをクリックうまくいけば登録されます。

(3)トリガーの動作を確認してみる
IBOConsoleのツールバーからSQL実行を選んで以下のSQL文を実行
INSERT INTO hogehogeテーブル (hogehoge2カラム名) VALUES('aaa');

エラーがなければselect文でインサートしたデータを見てみるとトリガーで設定したhogehogeカラム名には1が自動的に設定されていました。
今回ジェネレータの設定で初期値を0にしておいたので1加算された値がテーブルに設定されたようです。

この状態でジェネレータを確認するとこちらも1に変更されていました。

【補足】
・SQL文で登録ジェネレータの確認
SELECT * FROM RDB$GENERATORS;
・SQL文でジェネレータの削除
DELETE FROM RDB$GENERATORS
WHERE RDB$GENERATOR_NAME='hogehogeジェネレータ名';
・SQL文でジェネレータ名を変更
UPDATE RDB$GENERATORS
SET RDB$GENERATOR_NAME='NEW_GEN'
WHERE RDB$GENERATOR_NAME='OLD_GEN';


posted by hoto at 19:18| 東京 ☀| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年06月16日

オートナンバーについての取り扱いについて

Firebirdをせっかくインストールしても仕事の関係で中々操作できていないのですが・・・。
Firebirdでのオートナンバーについて中神氏のZopeメモにあるRDBを移行した時のメモにトリガーとジェネレーターを使用したオートナンバリング方法があったのでメモしておこう。
posted by hoto at 16:32| 東京 ☀| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年06月09日

Tomcat5.0.25とFirebird1.5の連携

ApacheとTomcatの連携ができたので今度はJSP、サーブレットからデータソースによるDBアクセスをできるようにしました。

とりあえずJDBCドライバ(FirebirdSQL-1.5.0Beta3JDK_1.4.zip)を入手してfirebirdsql-full.jarをCATALINA_HOME\common\libにコピー。

次にserver.xmlの修正をするのですが、TomcatのAdminToolを利用して設定してみました。

[リソース]−[データソース]で新しいデータソースを作成
jndi名:jdbc/hogehoge
データソースURL:jdbc:firebirdsql://localhost:3050/d:/hogehoge.fdb
jdbcドライバクラス:org.firebirdsql.jdbc.FBDriver
ユーザ名:hogehoge
パスワード:hogehoge
その他、接続数や待ち時間はとりあえずデフォルト


[サービス]−[ホスト]−[コンテキスト]−[リソース]−[リソースリンク]にリソースリンクを作成
※コンテキストは実際にjspやサーブレットを配置するフォルダを選択。自分の場合は、既にApacheと連携の為に作成したコンテキストを利用しました。

名前:jdbc/hogehoge
グローバル:jdbc/hogehoge
型:javax.sql.DataSource

設定が終わったら念のためTomcatを再起動。

JSPからDBアクセスに必要な部分は
java.sql.*"
javax.sql.*"
javax.naming.*"
のインポートと
Connection con = null;
Statement stmt = null;
DataSource ds;

try {
InitialContext ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/hogehoge");
con = ds.getConnection();
stmt = con.createStatement();
String sql = "SELECT * FROM ask_tb";
ResultSet rs = stmt.executeQuery(sql);

----以下ResultSetの操作は通常のDBアクセスと同じのため省略

後は、ブラウザから作成したjspファイルを呼び出して結果がでればOKでした。
唯一自分の環境ではTomcatもFirebirdも文字コードをUTF-8を使用しており作成したJSPがsjisだったため文字化けでまともに動きませんでした。

とりあえずこれでWindows環境でApache+Tomcat+Firebirdが連携でき開発環境が整いました。





posted by hoto at 15:02| 東京 ☔| Comment(2) | TrackBack(2) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年05月26日

VineLinux2.6r4(Seed化)にFirebird1.5インストール

Firebird1.5をVineLinux2.6r4にインストールしたいと考えたのですがVine用のRPMがなかったのでコンパイルすることにしました。ZopeメモのFirebird関連を参考にしたのですがリリースノートにGCC 3.x and libtool 1.3以上との事だったのでVineはSeed化しました。
とりあえずSeed化できたようなのでFirebird1.5のソースを入手してコンパイルしてみました。(今回はSuper Server版でコンパイル)

# ./autogen.sh --with-editline --enable-superserver
# make
# make install

makeは非力なPC(P-200Mhz)なので2時間30分もかかりましたがとりあえず終了。make installしたところ

Extracting install data
+------------------- ERROR -----------------------+
| Your system miss editor 'ex'. |
| Please install it before running setup program. |
+-------------------------------------------------+
Install aborted: The command ./scripts/preinstall.sh
failed with error code 127

エラーメッセージが表示して終了してしまいました。exエディターがインストールされていないかとも思ったのですがコンソールでexとたたくと正常に起動されました。
原因が分からず仕方がないのでpreinstall.shのcheckForExサブルーチンをコメント(EOSラベル以外)して再度make installしたところ、インストールされたようです。

続けると
Press return to continue or ^C to abort
Archiving...
Done.
Deleting...
Done.
Starting Firebird server: [失敗]
Fixing firebird's shell to /bin/sh
Starting Firebird server: [ OK ]
Please enter new password for SYSDBA user:

上記メッセージが表示してSYSDBAのパスワードを催促され入力して完了しました。
試しにisql -U SYSDBA -P xxxと入力するととりあえず
Use CONNECT or CREATE・・・のメッセージが表示しました。

ただ、Firebirdが原因だと思うのですがtelnetできなくなってしまい、これから原因調査をしなければなりません。

【追記】
Telnet接続できなかったのはSeed化そのものが原因でした

posted by hoto at 17:09| 東京 ☀| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年05月06日

isqlからの日本語データinsertについて【補足】

文字コードをEUCJ_0208を指定したDBにコマンドラインのisqlから日本語データをinsertとする場合、明示的にSET NAMES SJIS_0208;で指定する必要あるようですがDBにCONNECTする前に指定しないといけないらしい(当たり前なのかな・・・)
CONNECTした後にSETコマンドで指定してもエラーで怒られる。

Windows2000Server,Windows98SEでうまく行きました。
posted by hoto at 23:54| 東京 🌁| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年04月30日

Firebird対応SQLコマンドリファレンス

せっかくFirebirdを利用し始めたのでSQLコマンドリファレンスを購入しようと書店に行ってみたのですがFirebirdも考慮した書籍がほとんど見つからない・・・。
どれもOracle、SQLserver、MySql、Postgresqlばかりで寂しいばかりでしたが、唯一見つけたのがSQLコマンド逆引きスーパー辞典(株式会社ソーテック社 ISBN4-88166-347-X)でした。ただFirebird1.0がベースのためかFirebird1.5の新機能は含まれていません。(ちょっと残念)

ちなみにこの書籍は
Oracle 9.0.1
DB2 8.1
SQL 2000Server
PostgreSQL 7.3.1
MySQL 4.0.13
Firebird 1.0
に対応していました。

まあ自分のような初心者には、基本的なSQLコマンドがあればとりあえず十分ですが・・・。

posted by hoto at 17:36| 東京 ☁| Comment(2) | TrackBack(1) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

便利そうなツール

各種定義ツールB-Pla1,B-Pla2,B-Pla9とFirebirdの数少ない書籍(Firebirdで学ぶSQL超入門 ISBN:4-89627-205-6)で利用されているFirebird SQL 発行支援 KSQLfb.exeはとても便利そうなのでぜひ使ってみたいと思います。
posted by hoto at 15:06| 東京 ☀| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

isqlからの日本語データinsertについて

Winwdos2000上のFirebird1.5に、文字コードEUCJ_0208で作成したDB環境に対してisqlから日本語データをinsertしようとするとsql文でエラー(SQLCODE=-802)が発生しました。
Firebirdについてビギナーなため原因が分からなかったのですがどうやらisqlを起動するコマンドプロンプトの文字コード(SJIS)が問題でした。(文字化けしてしまうみたい)
EUCJ_0208で作成したDBに日本語データをinsertする場合はisqlを利用する文字コードを明示的に指定する必要があるみたいです。
のでまず
SET NAMES SJIS_0208
でコンソールの文字コードを宣言することによりSJIS→EUCに変換したSQL文をDBに送信するようになるみたいです。
posted by hoto at 13:57| 東京 ☀| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年04月28日

テーブル、カラム名の大文字と小文字

作成したDBにJDBC経由でアクセスできたものの、テーブル名とカラム名をダブルコーテーションで囲む必要があり調べていたのですがどうやらIBOConsoleから小文字で作成した場合今回の事象になりました。
試しにisqlでコマンドベースで作成したところ小文字で入力しても実際showコマンドでテーブル情報を表示すると大文字で定義されていました。
IBOConsoleから大文字で作成すればもちろんそのまま大文字でテーブルやカラムが定義されるようです。

やっぱり実際に使ってみないと分からないものです。
posted by hoto at 22:55| 東京 ☀| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

2004年04月27日

Windows2000にFireBird1.5をインストール

とりあえずこちらからバイナリをダウンロードしてセットアップウィザード通りにインストールしてみました。
標準ではコントロールパネルに起動停止用の管理マネージャーが追加されるみたいです。
DBの操作は基本的に別のPCからIBOConsoleを利用してGUIで操作可能なようです。

IBOConsoleの日本語版はここでダウンロードしました。解凍して起動してみるとGDS32.dllがないと怒られてしまいFireBirdをインストールしたPCからwinnt\system32にコピーをしたら起動できました。

デフォルトのIDはSYSDBAでパスワードはmasterkeyなのでとりあえず普段使うidを作成しました。
gsec -USER SYSDBA -PASS masterkey
GSEC>add hoge -pw パスワード
GSEC>quit

データバースの作成
isql -USER hoge -PASS パスワード
SQL>ceate database 'c:\xxxx\test.fdb' PAGE_SIZE 8192 DEFAULT CHARACTER SET EUCJ_0208;
SQL>quit;

文字コードをutf-8にする場合はEUCJ_0208ではなくUNICODE_FSSの用です。

テスト接続してみました。
isql -USER hoge -PASS パスワード
SQL>connect c:\xxxx\test.fdb;
※db名は絶対パス指定のようで、シングルコーテーションやダブルコーテーションで囲まないようです。囲むとエラー。

テーブルの作成はIBOConsoleを利用して作成したのですが、オプションの言語をJapanese、フォントを日本語フォントに変更します。※文字化けする場合は何度か試してみると直るみたいです???

<補足>
今回FireBirdはWindows2000Serverにインストールしたのでターミナルサービス(管理モード)でサーバー上の管理マネージャまたはコマンドプロンプトでisqlコマンドを入力したのですがエラーになりました。
ターミナルサービス経由でのだめなようです。

またクライアントPCでターミナルクライアント接続している状態でIBOConsoleを起動してもログインエラーでつながりません。テスト接続してみると、

・エラーメッセージ
接続中にサーバーエラーが発生しました
エラー - ISC ERROR CODE:335544373

ISC ERROR MESSAGE:
operating system directive CreateFile failed
要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。

サーバーへの接続に失敗しました

となります。





posted by hoto at 15:43| 東京 ☔| Comment(0) | TrackBack(0) | FireBird(RDB) | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は90日以上新しい記事の投稿がないブログに表示されております。