2014年3月28日金曜日

Firebird のシステム情報を取得

テーブル一覧を取得する :
select RDB$RELATION_NAME as TABLES from RDB$RELATIONS
where (RDB$VIEW_SOURCE is NULL) and (RDB$SYSTEM_FLAG = 0)
order by RDB$RELATION_NAME;

項目一覧を取得する :
select RDB$FIELD_NAME as COLUMN_NAME from RDB$RELATION_FIELDS
where RDB$RELATION_NAME = 'PRODUCTS' order by RDB$FIELD_POSITION;

2013年9月1日日曜日

jQuery mobile の data-rel="external"

<a> タグによるファイル・リンクで、確実にサーバのプログラム(php)を呼び出すように "external" という『おまじない』を書いているのだが、キーは rel= でも data-rel= でもよさそうで、その違いがよくわからなかったのだが、ひとつ大きな違いを発見した。
例えば
 <a href="linksaki.php?option=aaa" rel="external"> または ・・・ data-rel="external">
と書き、linksaki.php の中で
  <section data-role="page" data-url="<?php echo $_SERVER['SCRIPT_NAME']?>">
と書いたとき、ブラウザに表示されるurlは :

rel= のとき、http://・・・/linksaki.php?option=aaa

data-rel= のとき、http://・・・/linksaki.php

2013年8月20日火曜日

【PHP】 PHP と jQuery mobile の環境でリダイレクト

リダイレクトするには php で (何かを出力する前に)、

|  header("Location: url" );

と書いておけばよいのだが、一つ大きな問題がある。ブラウザが覚えているアドレスがリダイレクト先の url に変ってくれないので、みっともない上に F5 を押してページをリロードするともともページに戻ってしまう。
ブラウザに正しいアドレスを知らせるには url を相対アドレスではなく http:// から始まる絶対アドレスで指定すればよい、とものの本には書いてあるが、jQuery mobile が悪さをしているのか、残念ながら効果がない。
解消法を、やっと見つけた(たいへんうれしい)。「data-role="page"」の指定に例えば、

|  <section id="xxxx" data-role="page" data-theme="d"
|        data-url="<?php echo $_SERVER["SCRIPT_NAME"]?>">




と、data-url に自分のアドレスを指定してやればよい。

2013年8月8日木曜日

Dec2Hex : Excel で10進→16進変換

Excel で10進→16進変換をしようとするとアドインを追加する必要があるので、自分で作ってみたら簡単だった。

Function Dec2Hex(dec As Variant, Optional ByVal places As Integer = 4) As String
  Dec2Hex = Right(String(places, "0") + hex$(dec), places)
End Function

注) hex は Variant を、hex$ は String を返す。


Function Hex2Dbl(hex As String) As Double
  Hex2Dbl = CDbl("&H" + hex)
End Function

Function Hex2Lng(hex As String) As Long
  Hex2Lng = CLng("&H" + hex)
End Function


2011年12月1日木曜日

Excel 2007 以降のバージョンで xls 形式で保存する

|If Application.Version > 11 Then
| wbook.SaveAs Filename:=wFullPath, FileFormat:=56
|Else
| wbook.SaveAs Filename:=wFullPath
|End If

2011年6月14日火曜日

【Delphi】メッセージダイアログをフォーム中央に表示する

メッセージダイアログをフォームとして受取り、加工した後に表示する。
更新 20230724 : Windows11に対応
function TForm1.ShowConfirmMsg(_msg: string): TModalResult;
  var
    frmMsg: TForm;
begin
  frmMsg := CreateMessageDialog(_msg, mtConfirmation, [mbOK, mbCancel]);
  with frmMsg do begin
    try
      Self.InsertComponent(frmMsg);
      Position := poOwnerFormCenter;
      ShowModal;
    finally
      Free;
    end;
  end;
end;

(久しぶりに使ってみたら文法エラーが出たので Self.InsertComponent を追加しました。)

2011年6月11日土曜日

【Delphi, Firebird】エンベデッド・ドライバ

Firebird エンベデッド・ドライバの配布は簡単。

1.Firebird はサーバ版と同じバージョンのエンベデッド版をダウンロードし、以下のファイルをアプリケーションと同じフォルダに置く。
fbclient.dll ← fbembed.dllの名前を変更
icudt30.dll
icuin30.dll
icuuc30.dll

以下は、必要な場合のみ。
ib_util.dll
firebird.conf
firebird.msg
udf/
fbudf.dll

2.接続は Devart の dbx ドライバを使用。
dbexpida40.dll
dbexpida30.dll(Delphi 2006アプリケーションでは上記の代わりに)

備考:
1)fbembed.dll が Firebird の本体でsる。
2)fbembed.dll のままで何故いけないのか? どこかに gds32.dll にせよと書いてあったが、これもダメ。どこかで定義しているはずなのだが。