TestLink 1.8.5b AllInOneパッケージ日本語化

バグ? TestLink 1.8.5bのAllInOneパッケージ (2010-10-31)

日本語化の為の個人情報画面でlocale が ja_JP

に変更できない なんどやっても元に戻る

直接DBの個人情報を更新することで反映できた

cd c:\xampplite\mysql\bin\

mysql -u root

use testlink


update users set locale='ja_JP';

commit;


ログインし直す

IrfanView のコマンドラインオプション resample にはまる

IrfanViewをバージョンアップしたらコマンドライン
からのresample が効かなくなった
options.txt のリファレンスも参考にしてみたが特に
間違っているところは無さそう
/resample=(w,h)
念のため変更履歴のi_changes.txtを調べたところ
Ver3.99からresampleの指定方法に変更ありの記述が!!
しかし詳細はoptions.txt参照・・・
え、何が変わったの?分からない??

その後も色々調べたが、結果は日本語版のoptions.txt
が間違っているというオチ
英語版をDLすると、options.txt には以下の記述がありました
/resample - for resize: use Resample option (better quality)

Example for conversion:
i_view32.exe c:\test.bmp /convert=c:\giftest.gif
=> Convert file: 'c:\test.bmp' to 'c:\giftest.gif' without GUI ;-)
i_view32.exe c:\*.jpg /convert=d:\temp\*.gif
i_view32.exe c:\*.jpg /resize=(500,300) /aspectratio /resample /convert=d:\temp\*.png
i_view32.exe /filelist=c:\mypics.txt /resize=(500,300) /aspectratio /resample /convert=d:\temp\*.png
i_view32.exe c:\test.bmp /convert=c:\test_$Wx$H.jpg
i_view32.exe c:\test.bmp /resize=(100,100) /resample /aspectratio /convert=d:\$N_thumb.jpg
i_view32.exe c:\*.jpg /advancedbatch /convert=c:\temp\*.jpg
i_view32.exe c:\test.bmp /transpcolor=(255,255,255) /convert=c:\giftest.gif

横幅を200、縦は比率を横に合わせてリサンプルする場合
サイズ指定にはresizeを指定
/resize=(200,0)
リサンプルを指定
/resample
画像の縦と横の長さを指定
/aspectratio

とする

以前までは
/resample=(200,0)

微妙な変更・・・やられました

複数テーブルを参照する動的SQLでレコード変数を利用する方法

概要

複数テーブルを参照する動的SQLでは、
テーブル名%rowtype
のようにレコード変数を定義することができない。
また、定義済み固定カーソルのようにカーソル定義型による
カーソル名%rowtype
のようなレコード変数も定義できない

その為、複数テーブルを参照する動的SQLにてレコード変数を利用したい場合は
実行する動的SQLのSELECT 句項目に対応するユーザ定義レコード型を事前に定義し
その型をレコード変数として定義し利用する

手順

1.参照カーソルを定義する
2.rowtype の代わりとなるユーザ定義レコードを定義する

例)

-- 定義
-- 参照カーソル
TYPE cv_type is ref cursor;
-- カーソル変数定義
CUR_CV cv_type;

-- ユーザ定義レコード 
TYPE rec_type is record(
    C_COL1      TABLE1.C_COL%type,
    S_COL2      TABLE2.S_COL%type,
    N_COL3      TABLE2.N_COL%type,
    S_COL4      varchar2(8),
    D_COL5      DATE 
);
-- レコード変数
ROW_REC rec_type;

-- 動的SQL退避文字列変数
SQLSTR varchar2(256);

-- 中略

-- 実行処理例
begin
    -- 動的SQL組立て
    SQLSTR := '';
    SQLSTR := SQLSTR || 'select ';
    SQLSTR := SQLSTR ||     'TABLE1.C_COL, TABLE2.S_COL,';
    SQLSTR := SQLSTR ||     'TABLE2.N_COL, ''12345678'', sysdate ';
    SQLSTR := SQLSTR || 'from ';
    SQLSTR := SQLSTR ||     'TABLE1, TABLE2 ';
    SQLSTR := SQLSTR || 'where ';
    SQLSTR := SQLSTR ||     'TABLE1.C_COL=TABLE2.C_COL ';

    -- カーソルオープン
    open CUR_CV for SQLSTR;
    -- Fetch ループ
    loop
        fetch CUR_CV into ROW_REC;
        exit when CUR_CV%notfound;
        -- 処理実行
        PR_EXE(ROW_REC);
    end loop;
    -- カーソルクローズ
    close CUR_CV;
end;

ORCLE 10g ODP インストールによるoo4oの接続の不具合

ORCLE 10g ODP インストールによる
oo4o 接続不可となる不具合について

現象
ORCLE 9i が既にインストールされている環境に、10g ODAC
をインストールすると、oo4o によるDB接続時にTNSエラーが発生する

原因
1.oo4oは、一台のクライアントに対して、一つのORACLE_HOMEのみ
 対応するため複数バージョンは使用できない
2.10gからは、新たなORACLE_HOMEにoo4oをインストールすると、
 レジストリが書き換えられ、それ以前にインストールされたoo4oバージョンは
 使用できなくなる

これが原因で、ASPのoo4o接続時にエラーが発生した
10gの新しいoo4oで動作してもいいような気がしますが・・・

問題解決方法
1.10gのoo4oを削除 
 OUI にて10gのoo4oを削除する
  スタートメニュー
 ・Oracle-ODACHome1>Oracle Installation Products>Oracle Universal Insaller 起動
 ・インストールされた製品・・ボタン押下
 ・ODACHome1-Oracle Data Access Components 10.20・・
  配下にある Oracle Objects for OLE にチェックし削除を実行
  *必ずOracle-ODAC用Universal Insaller を利用すること

 1.よりoo4oの設定がレジストリより削除されるので以下2を実行する

2.前バージョンoo4oのレジストリ再登録
  コマンドプロンプトより9i ORAHOME/bin に移動し以下のコマンドを実行

  regsvr32.exe oip9.dll

3.PC再起動

これにて一件落着

既存の環境にてoo4oを既にインストールされている方は
新規でODPをインストールされる方は、念のためoo4oのインストール
チェックを外した方が安全かもしれません

※追記
 上記の手順でも駄目な場合
 コマンドプロンプトより9i ORAHOME/bin に移動し以下のコマンドを実行
 regsvr32.exe oradc.ocx
 コマンドプロンプトより9i ORAHOME/oo4o に移動し以下のコマンドを実行
 OO4OPARM.REG
注)OO4OPARM.REG はOO4O構成情報を登録するためのファイル
   デフォルトの各設定はe:ドライブが指定されているので
   テキストエディタで開いて、使用している環境にあわせて
   設定し直す必要がある
○参考サイト
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/win.102/B25023-01/intro.htm

JDeveloper による PLSQL のリモートデバッグ

以下のサイトにてJava+SQLJからキックしたPLSQLのシームレスデバッグ
の方法が動画で詳しく説明されている
http://otndnld.oracle.co.jp/products/jdev/viewlet/905/Developing_PLSQL/Developing_PLSQL_viewlet_swf.html
11g もほとんど同じ要領にて可能
○ポイント

 PLSQLのデバッグには事前にPL/SQLプログラムを実行するデータベースユーザに
 デバッグ用の権限を付与する必要がある
 GRANT DEBUG ANY PROCEDURE TO
 GRANT DEBUG CONNECT SESSION TO

 デバッグ対象となるPL/SQLプログラムの先頭行にデバッグセッション接続を行うための記述を行う
 DBMS_DEBUG_JDWP.CONNECT_TCP('','');
  JDeveloperが動作するマシン名またはIPアドレス
  JDeveloper のリスナ設定にて入力したポートNo

※余談
 SQLJはJavaプログラムから静的埋め込みSQLを使用するためのメソドロジーと仕様
パフォーマンスと移植性に優れている

データグリッド日付データのフォーマット

データグリッドの日付データの表記方法を変更するには
DataGridColumnにlabelFunctionイベントを行い
labelFunctionのイベントハンドラにて列の日付表示セルの
フォーマット処理を行う

<mx:DataGridColumn headerText="日付" dataField="date" width="135" 
  labelFunction="myDateLabel"/>  

labelFunction は列が表示される際に指定された関数を実行する
日付フォーマット処理実装例

    /**
    * 日付フォーマット処理
    * @param data DataGridの選択されたデータ項目
    * @param column DataGridの列オブジェクト
    * @return フォーマット済みのデータ項目
    */
    private function myDateLabel(data:Object, 
    column:DataGridColumn):String {
        var returnString:String;
        var date:Date;
        try {
            date = data[column.dataField] as Date;
            returnString = dateFormatter.format(date);
        } catch(e:Error) {
            //日付フォーマット異常時の処理
        }
        return returnString;
    }  

フォーマットの書式指定は以下のように指定する

<mx:DateFormatter id="dateFormatter" 
   formatString="YYYY/MM/DD JJ:NN:SS" />

コードにて直接指定する場合はDateFormatterオブジェクト生成後に
formatString プロパティを設定する

var dateFormatter:DateFormatter = new DateFormatter();
dateFormatter.formatString = "YYYY/MM/DD JJ:NN:SS";