メイン

Firebird アーカイブ

2006年11月28日

Firebird2.0で日本語の混じったPathもOKに!

Firebird2.0で日本語の混じったPathもOKに!

[Database File Pathの文字化けについて]
http://groups.yahoo.co.jp/group/Firebird-jp-general/messages/501?expand=1

そこでなにげに2.0 で同様のテストしてみたところ
なんと問題なく接続できました。\(^^)/

Firebird2.0で日本語の混じったPathもOKに!

これはうれしいニュース。
使い勝手が大幅に向上します。

今まで使えなかった目的にも使えるようになりそう。

2006年12月02日

無料で使えるFirebird用の管理ツール

無料で使える Firebird 用の管理ツールを探してみました。

現在、検証中。

テーブルなどの操作にはFlameRobinを、データの閲覧にはIBConsole 日本語版+αを使うようにしました。

Firebird Wiki管理ツールの項目で他のツールも紹介されています。

2006年12月04日

PythonでFirebirdを使う

PythonでFirebirdを使う。

インストール

  1. PythonのFirebirdライブラリ KInterbasDB をダウンロードする。
    Pythonはバージョン2.5、Firebirdは1.5.3なので、kinterbasdb-3.2.win32-FB-1.5-py2.5.exeをダウンロードしました。

  2. ダウンロードしたファイルを実行して、インストールする。

以上でインストールは完了。

Firebirdの接続と切断

import kinterbasdb
kinterbasdb.init(type_conv=200)
#データベースに接続する
con = kinterbasdb.connect(dsn='localhost:C:/path/to/file.FDB',
                          user='sysdba',
                          password='masterkey',
                          charset="SJIS_0208")
#切断する
con.close()

SELECT文

cur = con.cursor()
cur.execute("select * from ADDRESS")
for row in cur:
  print "postcode = %s, address = %s" % (row[0], row[1])

INSERT文

values = [('690-0001', '島根県松江市東朝日町'),
          ('690-0002', '島根県松江市大正町')]
cur = con.cursor()
cur.executemany("insert into ADDRESS values(?, ?)", values)
con.commit()

DELETE文

cur = con.cursor()
cur.execute("delete from ADDRESS")
con.commit()

2006年12月05日

Firebirdのbetween

Firebirdのbetween句は、範囲を指定する二つの値は昇順に記述しなくてはならない。

これは昇順に並んでいるので結果を取得できる。

select * from ADDRESS
where POSTCODE between 6900001 and 6900005

これは昇順ではないので結果が空になる。

select * from ADDRESS
where POSTCODE between 6900005 and 6900001

つまり、

between A and B

「AとBの間」ではなく、「A以上B以下」という意味だ。

2006年12月31日

FirebirdでDDLを抽出する方法

Firebirdでは、isql の -x オプションで DDL が抽出できます。

-x 指定されたデータベースに対して DDL を抽出します

コマンドラインツールの簡易マニュアル

isql -x データベース名 -u ユーザ名 -p パスワード

2007年07月16日

Firebird2.1ではSJIS拡張文字が使えるようになりそう

Firebirdは1.5から2.0へのバージョンアップで、多国語化としてUnicodeを使用する仕組みに変わりました。

この副作用として「(株)」などの機種依存文字が使用できなくなってしまいました。

Firebird 2.1β+最新スナップショットでCP932を使う」によると、Firebird2.1ではCP932がサポートされ、機種依存文字の問題が解決するようです。

やっとFirebird1.5からバージョンアップできそう。

2008年04月17日

SRVR_multi_thread/RECEIVE: error on main_port, shutting down

Firebirdのメーリングリストより。

SRVR_multi_thread/RECEIVE: error on main_port, shutting down

のエラーが出た時は、ウィルス対策ソフトのNortonが悪さをしているようです。

もし使われているなら、NOD32 IMONをとめるか、例外処理にFirebirdを追加してみてください。

とのこと。

はまりそうなので、メモ。

Firebird1.5系のデータベースの最大サイズは30GBまで

Firebirdのメーリングリストより。

Firebird1.5系のデータベースの最大サイズは30GBまで。
これを越えるとエラーになるようです。

この問題に遭遇することはないと思いますが、
念のため、これもメモ。

2008年09月15日

MERGE文の復習

MERGE文の復習。Firebird2.1を使用しました。

サンプルデータの作成

CREATE TABLE employee (
  id INTEGER NOT NULL,
  name VARCHAR(1024) NOT NULL,
  PRIMARY KEY (id)
);
CREATE TABLE employee_temp (
  id INTEGER NOT NULL,
  name VARCHAR(1024) NOT NULL,
  PRIMARY KEY (id)
);

INSERT INTO employee (id, name) VALUES (1, 'Alice');
INSERT INTO employee (id, name) VALUES (2, 'Bob');
INSERT INTO employee (id, name) VALUES (3, 'Carol');

INSERT INTO employee_temp (id, name) VALUES (2, 'Becky');
INSERT INTO employee_temp (id, name) VALUES (4, 'Dave');

employeeテーブル

id name
 1 Alice
 2 Bob
 3 Carol

employee_tempテーブル

id name
 2 Becky
 4 Dave

employee_tempテーブルのデータをemployeeテーブルにマージする。

employeeテーブルとemployee_tempテーブルの両方にid=2のレコードがあるので、employeeテーブルのid=2のレコードは更新します。

id=4のレコードはemployee_tempテーブルにだけあるので、employeeテーブルに追加します。

MERGE INTO employee USING employee_temp ON (employee.id = employee_temp.id)
WHEN MATCHED THEN
  UPDATE SET employee.name = employee_temp.name
WHEN NOT MATCHED THEN
  INSERT (id, name) VALUES (employee_temp.id, employee_temp.name)

結果は、

id name
 1 Alice
 2 Becky
 3 Carol
 4 Dave

employeeテーブルに存在しないレコードだけ追加したい場合は、「WHEN MATCHED THEN」を使わず、「WHEN NOT MATCHED THEN」だけを使用します。

MERGE INTO employee USING employee_temp ON (employee.id = employee_temp.id)
WHEN NOT MATCHED THEN
  INSERT (id, name) VALUES (employee_temp.id, employee_temp.name)

結果は、

id name
 1 Alice
 2 Bob
 3 Carol
 4 Dave

2009年01月25日

Firebird日本語化プロジェクトWiki

Firebird日本語化プロジェクトWikiは、Firebirdのメッセージを日本語化するプロジェクト。

約3000項目にわたるメッセージ構文をWiki形式で翻訳し、その情報を一般に提供することで、Firebirdの日本語へのサポートをよりよくしていきたいと思います。

Firebird日本語化プロジェクトWiki

Firebird日本ユーザー会が提供している「日本語インストーラ」とともに、
Firebirdの敷居を低くしてくれるプロジェクトですね。

2009年08月04日

FirebirdがBest Project for the Enterpriseに

The 2009 Community Choice Awardsで、FirebirdがBest Project for the Enterpriseに選ばれました。

About Firebird

ブログ「山本隆の開発日誌」のカテゴリ「Firebird」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはC++Builderです。

次のカテゴリはJavaです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35