2006年11月29日
Ruby Extension for Informix
私は Ruby の経験がないのですが、Informix 用のドライバーがバージョンアップした、ということのようですね。
http://freshmeat.net/projects/ruby-informix/?branch_id=64057&release_id=240775
続きを読む
http://freshmeat.net/projects/ruby-informix/?branch_id=64057&release_id=240775
続きを読む
2006年11月15日
EMATCHES
昔の INFORMIX ( OnLine とか SE の version 4 とか version 5 の時代です ) には、EMATCHES 、という全角文字と半角文字を同じとみなして検索してくれるキーワードがありました。
Informix SE/IDS のversion 7 以降では、EMATCHES キーワードはなくなってしまいましたが、International Language Supplement には、「EMATCHES互換ロケール」とでも言うような、隠し技的ロケールが含まれています。これを使ってみました。
$INFORMIXDIR/gls/lc11/ja_jp.*emat.lcoというファイルがあれば、EMATCHS互換ロケールはインストール済みです。
( 以下、Windows 版の Informix Dynamic Server version 10.00.TC5 での実験に使った Windows バッチファイルです )
REM 環境変数の設定
set CLIENT_LOCALE=ja_jp.sjis-s
set DB_LOCALE=ja_jp.sjis-s
REM 実験用データベースの作成
echo drop database ematsample; | dbaccess - -
echo create database ematsample with log; | dbaccess - -
REM 実験用表の作成 ( CHAR 型と NCHAR 型の2つの列 )
echo create table tab1 ( col1 char(20), col2 nchar(20) ); | dbaccess ematsample -
REM 実験用表にデータを挿入
echo insert into tab1 values ( "HAL", "HAL" ); | dbaccess ematsample -
echo insert into tab1 values ( "IBM", "IBM" ); | dbaccess ematsample -
echo insert into tab1 values ( "HAL", "HAL" ); | dbaccess ematsample -
echo insert into tab1 values ( "IBM", "IBM" ); | dbaccess ematsample -
echo insert into tab1 values ( "アイ・ビー・エム", "アイ・ビー・エム" ); | dbaccess ematsample -
echo insert into tab1 values ( "ワン・ツー・スリー", "ワン・ツー・スリー" ); | dbaccess ematsample -
echo insert into tab1 values ( "アイ・ビー・エム”, ”アイ・ビー・エム" ); | dbaccess ematsample -
echo insert into tab1 values ( "ワン・ツー・スリー", "ワン・ツー・スリー" ); | dbaccess ematsample -
REM ふつうのロケールで CHAR 型列を基準に並べ替え
echo set collation 'ja_jp.sjis-s';select col1, col2 from tab1 order by col1; | dbaccess ematsample - > result1.txt
REM ふつうのロケールで NCHAR 型列を基準に並べ替え
echo set collation 'ja_jp.sjis-s';select col1, col2 from tab1 order by col2; | dbaccess ematsample - >> result1.txt
REM EMATCHES互換ロケールで CHAR 型列を基準に並べ替え
echo set collation 'ja_jp.sjis-s@emat';select col1, col2 from tab1 order by col1; | dbaccess ematsample - > result2.txt
REM EMATCHES互換ロケールで NCHAR 型列を基準に並べ替え
echo set collation 'ja_jp.sjis-s@emat';select col1, col2 from tab1 order by col2; | dbaccess ematsample - >> result2.txt
result2.txt の内容のうち、col2 (NCHAR型列)を基準に並べ替えた結果を見ると、こんなふうになっています。
col1 col2
HAL HAL
HAL HAL
IBM IBM
IBM IBM
アイ・ビー・エム アイ・ビー・エム
アイ・ビー・エム アイ・ビー・エム
ワン・ツー・スリー ワン・ツー・スリー
ワン・ツー・スリー ワン・ツー・スリー
( result1.txt はここには引用しませんでしたが、CHAR でも NCHAR でも並べ替え結果は同じでした )
全角のHALが、半角のIBMよりも前に来ていたり、半角のアイ・ビー・エムが全角のワン・ツー・スリーより前に来ていたりしているのがわかるでしょうか?普通の照合順序では文字コードの順に並んでいます。( たとえば、全角のHALは、半角のIBMより後ろに来ます。またshift-jis だと、半角カタカナは、全角のカタカナよりコード上は後ろになります)が、SET COLLATION 文でemat 付きロケールを指定してあげると、NCHAR型列の比較に関しては、それが「文字」の順(全角だろうが半角だろうが、「ア」は「ワ」より前!) に並ぶようになります。
但し、全角文字と半角文字の同文字は、まったく同じ重み付けになっているようです。このため、場所によっては全角文字が前に来たり、またある場所ではその逆になったりしています。( 上のアイ・ビー・エムは全角が先に来ているのに、ワン・ツー・スリー・は半角が先にきていますね)
Informix SE/IDS のversion 7 以降では、EMATCHES キーワードはなくなってしまいましたが、International Language Supplement には、「EMATCHES互換ロケール」とでも言うような、隠し技的ロケールが含まれています。これを使ってみました。
$INFORMIXDIR/gls/lc11/ja_jp.*emat.lcoというファイルがあれば、EMATCHS互換ロケールはインストール済みです。
( 以下、Windows 版の Informix Dynamic Server version 10.00.TC5 での実験に使った Windows バッチファイルです )
REM 環境変数の設定
set CLIENT_LOCALE=ja_jp.sjis-s
set DB_LOCALE=ja_jp.sjis-s
REM 実験用データベースの作成
echo drop database ematsample; | dbaccess - -
echo create database ematsample with log; | dbaccess - -
REM 実験用表の作成 ( CHAR 型と NCHAR 型の2つの列 )
echo create table tab1 ( col1 char(20), col2 nchar(20) ); | dbaccess ematsample -
REM 実験用表にデータを挿入
echo insert into tab1 values ( "HAL", "HAL" ); | dbaccess ematsample -
echo insert into tab1 values ( "IBM", "IBM" ); | dbaccess ematsample -
echo insert into tab1 values ( "HAL", "HAL" ); | dbaccess ematsample -
echo insert into tab1 values ( "IBM", "IBM" ); | dbaccess ematsample -
echo insert into tab1 values ( "アイ・ビー・エム", "アイ・ビー・エム" ); | dbaccess ematsample -
echo insert into tab1 values ( "ワン・ツー・スリー", "ワン・ツー・スリー" ); | dbaccess ematsample -
echo insert into tab1 values ( "アイ・ビー・エム”, ”アイ・ビー・エム" ); | dbaccess ematsample -
echo insert into tab1 values ( "ワン・ツー・スリー", "ワン・ツー・スリー" ); | dbaccess ematsample -
REM ふつうのロケールで CHAR 型列を基準に並べ替え
echo set collation 'ja_jp.sjis-s';select col1, col2 from tab1 order by col1; | dbaccess ematsample - > result1.txt
REM ふつうのロケールで NCHAR 型列を基準に並べ替え
echo set collation 'ja_jp.sjis-s';select col1, col2 from tab1 order by col2; | dbaccess ematsample - >> result1.txt
REM EMATCHES互換ロケールで CHAR 型列を基準に並べ替え
echo set collation 'ja_jp.sjis-s@emat';select col1, col2 from tab1 order by col1; | dbaccess ematsample - > result2.txt
REM EMATCHES互換ロケールで NCHAR 型列を基準に並べ替え
echo set collation 'ja_jp.sjis-s@emat';select col1, col2 from tab1 order by col2; | dbaccess ematsample - >> result2.txt
result2.txt の内容のうち、col2 (NCHAR型列)を基準に並べ替えた結果を見ると、こんなふうになっています。
col1 col2
HAL HAL
HAL HAL
IBM IBM
IBM IBM
アイ・ビー・エム アイ・ビー・エム
アイ・ビー・エム アイ・ビー・エム
ワン・ツー・スリー ワン・ツー・スリー
ワン・ツー・スリー ワン・ツー・スリー
( result1.txt はここには引用しませんでしたが、CHAR でも NCHAR でも並べ替え結果は同じでした )
全角のHALが、半角のIBMよりも前に来ていたり、半角のアイ・ビー・エムが全角のワン・ツー・スリーより前に来ていたりしているのがわかるでしょうか?普通の照合順序では文字コードの順に並んでいます。( たとえば、全角のHALは、半角のIBMより後ろに来ます。またshift-jis だと、半角カタカナは、全角のカタカナよりコード上は後ろになります)が、SET COLLATION 文でemat 付きロケールを指定してあげると、NCHAR型列の比較に関しては、それが「文字」の順(全角だろうが半角だろうが、「ア」は「ワ」より前!) に並ぶようになります。
但し、全角文字と半角文字の同文字は、まったく同じ重み付けになっているようです。このため、場所によっては全角文字が前に来たり、またある場所ではその逆になったりしています。( 上のアイ・ビー・エムは全角が先に来ているのに、ワン・ツー・スリー・は半角が先にきていますね)
2006年11月10日
DBSonar
cobrasonic社の、informix専用パフォーマンス監視・分析ツール "DBSonar" という製品が、最近 International Informix User Group などで頻繁に紹介されています。
前から目に止まってはいたのですが、昨日ウェブサイトをじっくり読んでみました。
結構面白そうです。
http://www.cobrasonic.com/products/DBSonar_overview.html
パフォーマンスの視点からのデータベース健康チェック ( 頻繁に呼び出されている SQL, インデックス、表など)レポートの生成など、今までの同様のツールよりも細かいところまで目が行き届きそうな機能がたくさん紹介されています。
デモバージョン(Cobrasonic社のデモ用Informix インスタンスに接続する) や評価版もあるようです。ちょっとダウンロードして試してみようと思います。
続きを読む
前から目に止まってはいたのですが、昨日ウェブサイトをじっくり読んでみました。
結構面白そうです。
http://www.cobrasonic.com/products/DBSonar_overview.html
パフォーマンスの視点からのデータベース健康チェック ( 頻繁に呼び出されている SQL, インデックス、表など)レポートの生成など、今までの同様のツールよりも細かいところまで目が行き届きそうな機能がたくさん紹介されています。
デモバージョン(Cobrasonic社のデモ用Informix インスタンスに接続する) や評価版もあるようです。ちょっとダウンロードして試してみようと思います。
続きを読む
2006年11月08日
Java UDRをWebサービスとして公開
Rational Application Developer を使って、Informix の Java UDRを Webサービスとして公開する手順の説明があります。( 私は10分前に見つけましたが、9月頃公開されていたようですね。)
http://www-06.ibm.com/jp/developerworks/db2/library/techarticle/dm-0609ghosh/index.shtml
続きを読む
http://www-06.ibm.com/jp/developerworks/db2/library/techarticle/dm-0609ghosh/index.shtml
続きを読む
2006年11月07日
Informix 4GL からMQを使う
ちょっと前の記事 ( 2005年1月)ですが、IBM のウェブサイト developer works (英語)に興味を引かれる記事を見つけました。Informix 4GL アプリケーションから、WebSphere MQ の機能を使うための C 関数について説明されています。( 4GL Compiler でも 4GL RDS でも使えるように書かれているようです。)
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0501samuelsen/
続きを読む
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0501samuelsen/
続きを読む
2006年11月06日
Informix vNextに関する日本語記事
.. とは言っても、「発表した」という言及だけですが。
http://www.computerworld.jp/topics/dm/50851.html
( IDG Japan Webmedia の Computeworld 記事へのリンクです。: 情報源ウェブサイトのリンク条件に基づき、出典元を明記しました。 )
今のところ、まだこれだけのようです。日本では関心が低いですね。残念ながら。
http://www.computerworld.jp/topics/dm/50851.html
( IDG Japan Webmedia の Computeworld 記事へのリンクです。: 情報源ウェブサイトのリンク条件に基づき、出典元を明記しました。 )
今のところ、まだこれだけのようです。日本では関心が低いですね。残念ながら。
タグ :cheetah
2006年11月02日
Zend Core が IDSに対応
"Zend Core"という、PHP のアプリケーション基盤として有名な製品が、このたび、Informix Dynamic Server への対応を表明しましたね。。
こちらに詳細があります。
http://www.zend.com/products/zend_core/zend_core_for_ibm
こちらに詳細があります。
http://www.zend.com/products/zend_core/zend_core_for_ibm
タグ :php






日本の地域ブログ大集合!津々浦々の美味い・楽しいがここに!