渡辺
watan****@novel*****
2017年 7月 14日 (金) 10:30:44 JST
渡辺です。 追記です。 FireBird2.5の上でまったく新しいDBを作り、 https://www.firebirdsql.org/en/writing-udfs-in-delphi-for-interbase-firebird/ にある方法で、 Delphi2007(ユニコード対応していないバージョンで) で作成したDLLを declare external function f_AddFunction Integer, Integer returns Integer by value entry_point 'AddFunction' module_name 'nUDF.dll'; で定義し、 select f_addfunction(10,20) from rdb$database としただけでもFireBird サーバがクラッシュしてしまいます。 何かお気づきの方いらっしゃいましたらお願いします。 On 2017/07/14 9:42, 渡辺 wrote: > 渡辺です。 > > FB2.1上で動いていたUDFを > Windows10にインストールしたFireBird2.5で動かそうとすると、 > サーバがクラッシュしてしまいます。 > > Windows10にインストールしたのは 32bit版の2.5.7.27050。 > d:\FireBirdフォルダに入れてあります。 > > ※ ProgramFilesフォルダにインストールしてみましたが、 > 管理者権限のあるTeraPadなどでaliases.confなどを編集する必要があり、 > このあたりが問題なのかもと思って、 > 完全にアンインストールしてから、 > d:\FireBirdにインストールしなおしました。 > > 使っているDLLはDelphi製で、UDFフォルダの下に入れてあります。 > > functionの定義はこんな感じです。 > > SQL> show function nCOmmatexti; > Function NCOMMATEXTI: > Function library is nFB1.dll > Entry point is nCommaTextI > Returns BY VALUE INTEGER > Argument 1: CSTRING(5000) CHARACTER SET SJIS_0208 > Argument 2: INTEGER > Argument 3: INTEGER > > 作ったのがかなり古いので、DelphiXE5で再コンパイルしてみましたが、 > 同じようにFBサーバがクラッシュします。 > > データベースファイルは単に2.1のところから2.5へコピーをしただけではだめかもと思い、 > FB2.5でバックアップ、リストアをしてみましたが、効果はなく > サーバがクラッシュしてしまいます。 > > ログなども見当たらず、 > 何か手がないかと探しております。 > > なにかお気づきのことがある方、ご意見などお願いします。 > > -- /////ノベルット/////////////////////////////////////////////// 株式会社 ノベルット ソフトウェア インダストリー 代表取締役 渡辺 伸雄 〒144-0043 東京都 大田区 羽田2-12-3 Tel:03-5705-2595 Fax:03-6423-9505 mobile-phone:080-3430-2595 070-5582-6540 Email:watan****@novel***** ///////////////////////////////////////////////ノベルット/////