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('
※余談
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";
標準ブラウザで指定したURLのページを開く
// URLRequestオブジェクトの作成 var urlRequest:URLRequest = new URLRequest(link); // 標準ブラウザに対して指定したURLを開くよう指示 navigateToURL(urlRequest, "_blank");