2014年9月13日土曜日

【Delphi, Firebird】今さらながら、Devartのドライバでdbexpressに接続

設計時には問題なく接続できていたのに、実行したら
「不明なドライバです: DevartInterBase」
と出る。
動いているプログラムと見比べても悪い所がなかなか見つからない。

uses に DbxDevartInterbase を追加しなければいけなかったのだ。3時間ほども無駄にしてしまった。
Readme.html にはそんな記述がないが、最初に見つけたときはどうしたのだったか。

2014年7月28日月曜日

[Delphi]StringGrid の列幅を設計時の設定する

StringGrid は個々の列幅を設定するプロパティがないので、通常は実行時の OnCreate 等で
|  with StringGrid1 do begin
|    ColWidths[0] := 24;  ColWidths[1] := 64;  ・・・
|  end;
のように列幅の設定をしていると思うが、自分で書いたプログラムでは設計時にちゃんと列幅が設定されているではないか。どうやったのか思い出せなくてググってみたが適切な記事にヒットしない。出来ている StringGrid をテキスト表示してみたらわかりました。フォームをテキスト表示にしてエディタで編集するだけ。
| object StringGrid1: TStringGrid
|   Left = xxx
|   ・・・
|   ColWidths = ( 64 80 240 32 ・・・)  ← のように!
| end

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