Firebirdの”UPDATE OR INSERT”を使用する

“UPDATE OR INSERT”は、MATCHING句の列の値と一致するレコードがあればUPDATE、なければINSERTします。 ■Primary Keyがある場合 Primary Keyが …

Continue reading ‘Firebirdの”UPDATE OR INSERT”を使用する’ »

TIdEMailAddressListでメールアドレス複数指定形式を解析する

よくメールで複数人指定する場合には “名前” <メール@アドレス.com>, “名前” <メール@アドレス.com>, “名前&#822 …

Continue reading ‘TIdEMailAddressListでメールアドレス複数指定形式を解析する’ »

クラスを拡張する3つの方法

ログを出力するクラスを作成します。 ログの出力先はファイルだったり、Memoコンポーネントだったりします。 出力処理を柔軟に拡張する方法について考えます。 ログ出力クラスの実装方法を3通り考えてみました。 継承 委譲 メ …

Continue reading ‘クラスを拡張する3つの方法’ »

TJvThreadがスレッドを実行する仕組みを調べる

JVCLのTJvThreadはTThreadと違い、コンポーネントをフォームに配置して使用します。 TJvThreadのExecute()メソッドを呼ぶと、OnExecuteイベントに記述した処理が別スレッドで実行します …

Continue reading ‘TJvThreadがスレッドを実行する仕組みを調べる’ »

Firebirdの文字コード(UNICODE_FSSとUTF8)について

Firebirdの文字コード(UNICODE_FSSとUTF8)について、『Firebird 徹底入門』には次のような表が掲載されていました。 表 1.3 キャラクタセット比較AAあ㈱𠮟SJIS_0208 …

Continue reading ‘Firebirdの文字コード(UNICODE_FSSとUTF8)について’ »

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

以前のバージョンのFirebird Embedded Serverはデータベースを占有していて、一つのクライアントが接続していると、他のクライアントは接続できませんでした。 Firebird 2.5.1 Embedded …

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

FirebirdのUDFを作成してみた (2)UDFの引数で文字列を受け取る

前回(FirebirdのUDFを作成してみた)の続き。 Firebirdで自作UDFを作る時に、引数で文字列を受け取る方法を調べました。 C++でUDFを作るなら、Firebirdの「examples/udf/」にあるf …

Continue reading ‘FirebirdのUDFを作成してみた (2)UDFの引数で文字列を受け取る’ »

FirebirdのUDFを作成してみた

Firebirdの簡単なUDFをC++Builder XEで作成してみました。 ■DLLの作成 DLLを作成します。 C++Builderのメニューから「ファイル」→「新規作成」→「その他」を選択します。 今回は簡単な関 …

Continue reading ‘FirebirdのUDFを作成してみた’ »

Firebirdで問い合わせの結果に連番を振る(2)

前回の記事(Firebirdで問い合わせの結果に連番を振る)の続き。 ROW_NUMBER()関数はPARTITION BYで、連番を振る範囲を指定できます。 Firebirdで同じことをするにはどうしたらいいか考えまし …

Continue reading ‘Firebirdで問い合わせの結果に連番を振る(2)’ »