日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2025年1月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

Search Results

タイトル

執筆:2022.10.22
編集:2022.10.22


久々にIDE起動

InterBase library gds32.dll not found in the path. Please install InterBase to use this functionality

あれ?

%windir%\system32\net.exe start "Firebird Guardian - DefaultInstance"
無効なサービス名です。

NET HELPMSG 2185 と入力すると、より詳しい説明が得られます。

あれれーーー

安定していたのでさわることがなく、Embedded で運用していたため気が付きませんでした。
OS載せ替えたときに、サービスの登録が消えていたのですね

いまFirebird の安定板は version4.0なのですね。
互換性チェックとアップグレードに伴うdb変換は 面倒なので
2.5で安定運用していたので現時点でバージョンを上げるわけにはいかないのですよ😑。

手動でサービス追加するは面倒そうなので
最終版の2.5.9をダウンロードしてインストーラーで再インストール。

開発環境でもアプリ起動できるようになりました。
2022.10.22

Firebird 2.5.1 Embeddedでは複数のクライアントが同時に接続できるようになっていた

知らなかった!!
かなり前かららしい

共有サーバーで firebird+webデビューできそうな予感

脱sqlite!!

sqliteは基本機能がとてもとても貧弱すぎて、つかうの大変。

現状 sqliteで困っていないし、
コード書き換え面倒なので
今後数年は、現状維持ですね。

2016.01.30

Firebird upgrade 2.1 to 2.5(その2)


執筆:2011/03/07
編集:2011/03/07


Firebird2.5へアップグレード(その2)

どうやら、metadataというものが、2.5からutf8で保存されるようになったようだ。
データ部分は、デフォルトのデータベースの文字セットと同じになっている気がする。

Firebird2.5から
データベース NONE
だとアップグレード時にgbakがリストアで失敗するので
データベース に文字コードを指定して構造を先に作成したあと、
TIBDatabaseを2つ用意して
Tableループでテーブルのコピーをさくっとして正常動作しました。
(手順としては、データフィールド以外は無視+NULLも)
テーブルのリストは、IBDatabase1.GetTableNames(Tables, False);で取得できます
           if (current_field.FieldKind <> fkData)
              or
              (current_field.IsNull)
             then
              Continue;
           // コピー
           destTable.FieldByName(current_field.FieldName).AsVariant := current_field.AsVariant;

Shift_JISから、UTF8へ保存する場合は、破損する場合があるので注意しよう。

将来性を考えて、
専用変換ソフトを作って、ワンプッシュで新しいデータベースにコピーできるようにしました。
(TableとGENをコピー)


ここは、素直に、データベースとアプリケーションとも同じ文字コードで接続したいと思います。

Todo: データ移行ソフトのコピー後の全データ照合。

» Firebird upgrade 2.1 to 2.5(その2)'">続きを読む

2011.03.09

Firebird upgrade 2.1 to 2.5


執筆:2011/03/02
編集:2011/03/05


【まとめ】
  • SQL-2003対応になった
  • UTF8とShift_JIS間でコンバートが発生すると
    コンバートエラーを起こしやすい( Ⅱ など)
  • Malformed stringと表示され、リストアなどができない
    全角が使えないわけではない。
    コードページの再確認:SJIS,CP943C,UTF8
    Firebird Language Reference Update
      Firebird-2.1-LangRef-Update.pdf
        New character sets
  • CHARACTER SET のチェックが厳しくなった。
    いままで適当なことをしているとgbakなどで返り討ちされる。
    DEFAULT CHARACTER SET NONE;
【考察】
 移行には、ある程度アプリケーションの修正が必要になると思います。
新しい構文を使いたい場合やUTF8アプリケーションの場合は、移行すると便利と思います。
Shift_JISでデータをやりとりしている場合は、移行する必要性が感じられません。手間など不利益のほうが大きいでしょう。
 どうしても移行したく、エラーで変換できない場合は、テーブルをSQLダンプできるツールを使用するか、新規にデータベースを作成して、テーブルをコ ピーするといいだろう。
 構造が複雑な場合以外は問題ないと思いますが、
Firebird Roadmapには、2.5は、当面バグふぃっすに重点をおくと書いてあるので
急ぐ必要がない場合は、ある程度バグができってしまってから2.5に乗り換えた方がいいように思います。

» Firebird upgrade 2.1 to 2.5'">続きを読む

カテゴリー: General
2011.03.07

Delphi DB 「BLOB は変更されています」

アプリケーション起動
- レコード移動
- 特定のレコードを通過すると

ボン
 「BLOB は変更されています」

うっ、みたことのないエラー 嫌な予感。

Delphi2005で作ったソフトでエラーが発生しました。
.Netへ 移行
  .Netへ ゴー
それいけ .Net プロジェクト始動中なのに
 なんてひどい「しうち」。
Delphiとは、さようなら のはずなのに
また、不本意ながら 仕方なくDelphiを起動。

なんとなくDBの破損だとは、思うのですが、
なにせ paradox形式なので修復ツールがない。

...2分経過 問題の場所がわからない。

27個しかレコードがないのに壊れるのは勘弁してほしい。
やはり破損か?

(1)dbのバックアップ
(2)データベースデスクトップ データ再構築をクリック
  壊れた...。
(3)気を取り直して、ソフトでバッチムーブで再構築をクリック
(4)データがいくつか消滅したがまぁいいとしよう。

この際、ついでなので 今後のためにDBも変更。

(5)データ書き出しをクリック
(6)firebirdオプションを定義して再コンパイル
(7)同じフォルダにfirebird embededをコピー
(8)データ取り込みをクリック
(9)動作確認 ok
firebirdへ移行完了。
paradoxよ さようなら。
そして、もう破損しないことを祈りつつ

 解決!!

さらば Delphi

さぁ .Netへ レッツゴー
2010.12.06

Firebird 2.5 が公開されています。
さっそくインストール と
その前に、付属文書を読んで概要を確認しました。

うーん、
データベースに文字コード指定できるくらいで
あまりメリットがない。
ということで、 2.1.xを継続利用することに決定。

そもそも、アプリケーションがshift-jisだから
dbがunicode対応になってもなんの恩恵もない。

Firebirdは、
サイズは大きいけどクラッシュしないから、いい。
ポータブルなアプリケーションにもってこいのdb
ただし、日本の参考書が皆無。
英語のマニュアルか古いinterbaseの解説書あたりしか参考にできない。

Mysqlやoracleの時代なんだし
embedバージョンがなかったらFirebirdってただのゴミだよね。

SQliteって世の中にあるけど、あれは、もっとゴミ。
ほとんど書き込みのない設定ファイルくらいには、いいけど
データをばんばんいれるのには、向いていないよね。

2010.10.27

2009-10-08
Firebird Version 1.5系列の最終版 v.1.5.6がリリースされました

今後、メインテナンスが必要な場合は、2.0と2.1系列へ移行しよう
2009.10.08

Firebird の動作検証

作成日:2006.09.06
更新日:2006.09.06
更新日:2009.06.27

マイPCで 動作したもの 動作しなかったもの リスト

Version

コンパイラ

Windows

Vista XP 9.x系
Me 98 95
1.5.3 embed win  Delphi2005
(WinXP)
   
2.0.3 上記同様     ×
2.1.2
上記同様


2.5.x






3.x  

?(-)

空白は未確認 (※説明書上は、対応)

【win 95】
2.0.x系は、付属ツールも起動と同時にエラーで落ちました。
Win95では、1.5.x系で我慢するしかなさそうです

Firebird_v2.1.2.InstallationGuide.pdfには、
2.xでは、いずれWin9.x系をサポートしなくなるだろうと書かれている。


Firebird 1.5x embedの感想】
 短所:boolean型がないのが痛い。
 長所:処理が速い。
  win95でもさくさく動くのがイイ。
  開発の止まったBDEより断然お得?
 日本語列名が使えてGood

Firebird 2.x embedの感想】
  いろいろ機能アップ。
 またしてもboolean型がないのが痛い
 2009年現在、2.0.x、2.1.x、2.5.xの3系統がある。

Firebird 2 新しい予約語 (Newly Reserved Words)
  BIT_LENGTH
BOTH
CHAR_LENGTH
CHARACTER_LENGTH
CLOSE
CROSS
FETCH
LEADING
LOWER
OCTET_LENGTH
OPEN
ROWS
TRAILING
TRIM
Changed from Non-reserved to Reserved
  USING
Keywords Added as Non-reserved
  BACKUP *
BLOCK *
COLLATION
COMMENT *
DIFFERENCE *
IIF *
NEXT
SCALAR_ARRAY *
SEQUENCE
RESTART
RETURNING *
Keywords No Longer Reserved
  ACTION
RESTRICT
WEEKDAY *
CASCADE
ROLE
YEARDAY *
FREE_IT *
TYPE
No Longer Reserved as Keywords
  BASENAME *
GROUP_COMMIT_WAIT *
NUM_LOG_BUFS *
CACHE *
LOGFILE *
RAW_PARTITIONS *
CHECK_POINT_LEN *
LOG_BUF_SIZE *
Those marked with an asterisk (*) are not present in the SQL standard.
2006.09.19

Firebird 2 RC4
がいつの間にか出荷?されていますね

もうすぐリリースか?とおもいきや
なんとRC5が予定されているではありませんか!!

といいうことは来月
RC5
年末当たりにリリースですか?
カテゴリー: General
2006.09.08

Delphi database メモQuery編1
TQuery
実行時に SQL 文を実行するには Open または ExecSQL のメソッドを使います。
TIBQuery
Prepare 実行前の最適化のため,サーバーに問い合わせを送信します。
ExecSQL 問い合わせを実行する SQL 文を実行します。
TIBSQL
Open データセットが開いているかどうかを指定します。
Prepare 実行前の最適化のため,サーバーに問い合わせを送信します。
ExecSQL 問い合わせを実行する SQL 文を実行します。
Win95で動かしたくなったので既存アプリ実行すると
インデックスが古いですとエラー
 ・・・ よくわからないエラーに遭遇・・
動くはずなんだけど・・・ データベースエンジンのバーションが違うせいかな・・・
ということで、BDEを切り離したくなったので
バージョンを固定しようと思ったので
お手軽な Firebird embededを使ってみることに決定。
あれ?
TQueryからの移行でTIBSQLに書き換えて
openで動作しないから 文をいれろとか変なエラーがでるし
強引に実行したら あれれ 結果が返らない ・・・
と悩むこと実行を繰り返し10数分・・・
ヘルプと見てみる。
(゚ロ゚)・・・ 「し・よ・う」 が 「ち・が・う」!!
open;

Prepare();
ExecQuery;
で解決
TIBQuery は InterBase SQL 文を実行します。
TIBSQL は,最小限のオーバーヘッドで InterBase の SQL 文を実行するオブジェクトを提供します。
まぁ、 いいとして、 うーん・・・
どっちにしようかなぁ・・・・・
デバッグが大変だ・・・
Autoincがないからつらいなぁ・・・
みつからないからselectでmax+1にでもしようかと思いましたが
そのへんは、IBOConsole から SQLを放り込んで解決
(これ探すのに1時間かかりました(;_;) )
CREATE GENERATOR "名前_GEN";
CREATE TRIGGER "TRIG_test_Autoinc" FOR "test"
ACTIVE BEFORE INSERT POSITION 0
as
/* code here */
begin
NEW."index" = GEN_ID("test_index_GEN", 1);
end

» 続きを読む

2006.05.11

Firebird2 + Delphi はじめて接続してみる(その2)
■データ操作をしてみよう
DeleteTable;

drop table
を使うと
そのあと createとかすると
エラーになる・・・
なぞ・・・
IBTable1.Close;
IBQuery1.Close;
IBQuery1.SQL.Text := 'drop table test';
IBQuery1.ExecSQL;
・IBTable1.Exists もなんか変・・・


なんだかPCが 著しく遅くなった
 (ビデオでたとえるとコマ送り状態)
firebird消去
追記
 どうやら スパムぼっとが
他のソフトと競合して妨害していることが判明
ということで
スパムぼっとに退場命令
firebird蘇生。 メラメラメラ〜
ぱかぱかぱかぱかーん
 firebirdは生き返った

» Firebird2 + Delphi はじめて接続してみる(その2)'">続きを読む

2006.03.17

Firebird2 + Delphi はじめて接続してみる(その1)

まず インストール
 
うごかない!!
  いじること2時間少々やっと解明

PDFの説明書を読めばよかった。。。


要点は この3つ。
・gsec.exeで ユーザーとパスワードを設定 (※-pwからだとエラーを起こす)
・C:\Program Files\Firebird\Firebird_2_0\の*.confファイルを設定する
 aliases.conf:エイリアスの設定
 firebird.conf:データベースの場所などの制限をしたい場合
・isql.exe(Firebird ISQL Tool) で データベースを作成


では、順に説明。

デフォルトは自動起動です。

【たまにしか使わないからFirebird起動したくない場合】
起動を手動にするには
管理ツール「サービス」 でfirebirdの2個を手動に変更。
バッチファイルでも作っておくといいかも
net start "Firebird Guardian - DefaultInstance"
停止は、
net stop "Firebird Server - DefaultInstance"
net stop "Firebird Guardian - DefaultInstance"


【ユーザーの作成】
P12あたり: ユーザーとパスワードの設定
binフォルダのdos窓で gsec -user sysdba -password masterkey
または
ファイルを指定して実行で
"C:\Program Files\Firebird\Firebird_1_5\bin\gsec.exe" -user sysdba -password masterkey
"C:\Program Files\Firebird\Firebird_2_0\bin\gsec.exe" -user sysdba -password masterkey

testという名前のユーザーを作成
GSEC> add test -pw '123'


【プロンプトから データベースファイルを作成する場合】
PDF P.9あたり
SQL> CREATE DATABASE  "C:\Program Files\Firebird\DB\sample.fdb"
CON> user 'test' password '123';


設定を間違うと このようなエラーがでます
CON> user 'test' password '123';
Statement failed, SQLCODE = -902
Your user name and password are not defined. Ask your database administrator to
set up a Firebird login.


SQL> CREATE DATABASE  "C:\Program Files\Firebird\DB\sample.fdb"
CON> user 'test' password '';
Statement failed, SQLCODE = -902
Access to database "C:\PROGRAM FILES\FIREBIRD\DB\SAMPLE.FDB" is denied by server
 administrator


好みに合わせて、 コンポーネントを配置して終了。
InterBase TIBDatabase
TIBTransaction
TIBQuery
Data Access TDataSource

  付属の説明書のPDFをさっと みればすぐわかります。
 (公式サイトを巡回しても 迷路にはまるだけです)

【関連記事】

2006.03.17

Firebird 2.0 + Delphi2005

うーん、 
accessのDBは頻繁に吹っ飛んでadoなんか信用できない
.dbもDelphi2005は、呼び出しで不意に応答停止する

もぉー また 保存していたテンプレート一部破壊されているよぉ
 データ小分けにファイルわけたのにぃ
  もぉー もぉー もぉー 
アクセスのバカぁーーー

いまのところ10MBくらいしかデータ無いけど
データは最終的には 数十万件はいる予定なので
どっちみち accessじゃダメかも・・・
.dbfにしておけばこんな苦労はなかったのに・・・
.dbfにするか 他の選択だけど・・・
ちょっと開発がとまった仕様をつかうものなんだしなぁ・・・
数十万件はいる予定に耐えれるか不明だし・・・
たしか耐障害性のあるとかいう
interbaseというてもありありだけど・・・
費用が高いし・・・

自分のPCしかつかわないからべつにつかってもいいけど・・・
 ということで あっ そういえばinterbase分岐の
無料のFirebirdがあったあった
 おぉー テラまでOKですか!!
もう キマリ!! (超 単純
ということで 試しにインストールしてみよう・・・。

ado接続から変更かけるから ちょっと数日 日数を要しそう。。。
mysqlいれているからそっちでもいいけど・・・
あっ でも
sql言語つかならデータベースの仕様は一個に統一した方がいいかなぁ・・・
うーん 。。。。 ( ぉぃ どっちなんだ・・・
とりあえず 明日かあさって 1.5系 いれて 動作検証してみよう
続き:Firebird2 + Delphi はじめて接続してみる(その1)
2006.03.17

PR

[PR]