ぽにょろん

思いついたこととメモ

Firebird

C#でFirebirdのストアドを書く

本エントリは、Firebird AdventCalender 2016 の14日目です。 今回は、Firebirdの.NET ProviderのコミッターであるJiri Cincura氏がブログで公開している、FbNetExternalEngineについて書きます。 目次 目次 FbNetExternalEngineってなに? 簡単な例 実装 検…

FAManagementStudioなるものを作ってます

以前からFirebird Embedded用のGUIツールを作成、公開しています。 名前は「FAManagementStudio」です。 github.com その宣伝記事になります。 目次 目次 背景 ツールの概要 詳しい使い方 開発環境 最後に 背景 Firebird Embeddedを以前から使っていたのです…

Firebird .NETProviderで実行計画を取得する

目次 目次 環境 実装 実行計画の見方 環境 C# Firebird .NET Data Provider 実装 FBCommandクラスにCommandPlanメソッドがあるので、それを呼び出すだけです。 using (var con = new FbConnection("接続文字列")) using (var command = con.CreateCommand())…

Firebirdでテーブル状態に合わせてINSERTとUPDATEを実行する

実は過去に、こんな記事を書いていました。 ponyoth.hateblo.jp 上記のFirebird版になります。 データ更新の際に、すでに該当行があればUPDATE、なければINSERTする単純な例です。 ただし、Firebirdには「UPDATE OR INSERT」という構文があります。 そのため…

ADO.NET provider 5.0.0.0 が出てた

FB3対応の「ADO.NET provider 5.0.0.0」がリリースされてました。 ADO.NET provider 5.0.0.0 for Firebird is ready | Jiří {x2} Činčura Release Notes - .NET Data provider - Version 5.0.0.0 - Text format - Firebird RDBMS Issue Tracker これで自前ビ…

同一プログラムからFirebird2.5と3.0のDBにアクセスしたい

同一プログラムからFB3とFB2.5にアクセスするシナリオを考え、サンプルを作ってみました。 目次 目次 環境 課題 ODSバージョンの取得 structを使うパターン 必要なところだけ変換 比較 FB3とFB2.5の共存 解決 環境 C# (.NET Framwork 4.5.2) VS2015 Firebird…

C#+FirebirdでExeの終了が遅かった件がFB3では再現しなくなっていた

以前記事にした以下の件、Firebird3.0で置き換え試したところ、 再現しなくなっていました。 ponyoth.hateblo.jp ponyoth.hateblo.jp Firebird2.5特有の問題なのか、Firebird3.0での修正に伴い解消されたのか。 謎ですが、一安心。

Firebird3.0でEmbedded試してみた

昨日(4月19日)、Firebird3.0(以下FB3)が正式にReleaseされました。 www.firebirdsql.org せっかくなので、FB3でのEmbedded接続を試してみました。 C#です。 目次 目次 今回試した環境 FB2.5からの大きな変更点 Firebirdのバイナリを取得 必要なDLLをコピー …

Firebirdのシステムデータにアクセスしたい場合

DBを扱うプログラムを書く際に、テーブルやカラム、インデックスやトリガー等の一覧を取得したい場合がありませんか? 何かと検索しているので、Firebirdの場合をメモしておきます。 目次 目次 環境 .NET Provider使う場合 各スキーマの引数一覧 SQLを自力で…

c#からFirebirdのDBにアクセスした後、Exeの終了が遅い。その2。

Firebird Embeddedを使用した後、プロセスの終了が遅い件ですが、 その後色々調べたところ、似たような件で悩んでいる人はいるようでした。 stackoverflow.com ただ、解決にはいたっていないようです。 試しに FbConnection.ClearAllPools() がどれくらい効…

c#からFirebirdのDBにアクセスした後、Exeの終了が遅い

c#からFirebirdのDBにアクセスした後のExeの終了が遅いということがありまして、少し調べてみました。 結論が正しいのかわかりませんがメモとして残しておきます。 ※検証甘いです。 環境 現象 分析 解決策(??) 環境 Firebird Embedded 2.5.4 FirebirdSql.Dat…

C#でFirebird Embedded を使う。

仕事の関係でFirebird Embeddedを使用することが増えたので、C#からのアクセスを試してみました。 用意する環境 Firebird ADO.NET Data Provider Firebird Embedded fbembed.dll ib_util.dll icudt30.dll icuin30.dll icuuc30.dll Firebird ADO.NET Data Pro…