布団が俺を呼んでいる

丘山大一のぶろぐ

Firebird Embededのお勉強 ISQLの使い方 スクリプトファイルのSQLを実行できない

解決? まで3時間ほどかかりました。

結論!

ISQL.exe で「-i」オプションをつけて読み込ませるファイルには、BOM (Byte Order Mark) をつけてはいけないらしい。

細かい話

isql.exe - i hogehogeScript.fmq -user SYSDBA -password masterkey -charset UNICODE_FSS 'HOGE.FTB';
とやったら、何回やっても最初のクエリの実行で失敗する。
接続する文字セットを変えたらうまくいくかな? と思いましたが、それでも失敗。
「最初だけ失敗する……?」
「最初にだけあるもの/ないもの ってなんだ……?」
「BOMだ!」
「とりあえずBOM外せ!」
「なんか知らんが動いたぞちくしょー」

根拠

やってみてダメだった、BOM外したらうまくいった……というだけです。
根拠となるドキュメントを発見できていません。

・私の検索能力が低い説。
・そもそもISQL の使い方間違ってんだよ説。
・BOM がダメなんて常識だろ説。
・Windows でスクリプト系ファイルを書く情弱なんて、我々Firebird 業界にはいらんのだよ説。
・はぁ? 何言ってんの? お前の環境おかしいよ説
etc. 

諸説ありますが、とりあえず誰か正解を教えてください。

思うに

BOMがダメだとしたら、MS信者、WIndows 万歳な人間には辛い仕様だぜよ。


Firebird 徹底入門

新品価格
¥4,104から
(2016/8/31 20:45時点)

コメントを書く

布団が俺を呼んでいる | Delphi 関数の戻り値の指定方法

布団が俺を呼んでいる

丘山大一のぶろぐ

Delphi 関数の戻り値の指定方法

代表的なもの、ちょくちょく使われるもの、多分存在すら知られていないもの。

下記のどれでも指定可能

function TForm1.Hoge: string;
begin
  Hoge := 'abc';
  Result := '123';
  Exit('あいうえお');
end; 

Result,Exitでの指定は有名。
関数名で戻り値を指定できるのはあまり知られていないと思う。
見にくくなるだけなので使わないけど。




OBJECT PASCAL HANDBOOK―マルチデバイス開発ツールDelphiのためのプログラミング言語完全ガイド

新品価格
¥6,480から
(2017/8/16 20:52時点)

コメントを書く