検索
Kawahara
- 2009年6月19日
- 2 分
IBM.Data.DB2.iSeriesの検証(2)
参照を追加したらフォームにdataGridView1とbutton1を追加。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using IBM.Data.DB2.iSeries; namespace DB2Test { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { const string CN_STR
1回の閲覧0件のコメント
Kawahara
- 2009年4月28日
- 2 分
AS400の異常をメールで通知する(3)
前回のように設定すると4つほど問題が発生。 1. 前回指定したコマンドが動かないRUNRMTCMD CMD(’D:CMDSAS400MAIL 1.BAT’) RMTLOCNAME(’192.168.xxx.xxx’ *IP) CCSID(943) これでエミュレータ上では正常に呼び出せていたが、iSeriesナビゲータを経由するせいなのか、「必要なユーザー ID がないかまたは無効です。」と言われる。結局、下記のように修正した。RUNRMTCMD CMD(’D:CMDSAS400MAIL 1.BAT’) RMTLOCNAME(’192.168.xxx.xxx’ *IP) RMTUSER(TEST) RMTPWD(TEST) CCSID(943) 2. パスが認識されない 困ったことに、iSeriesナビゲータ上のコマンド呼び出しでは¥(ほんとは半角)が使えない模様。 物は試しということで、/(スラッシュ)にしたらOKだった。RUNRMTCMD CMD(’D:/CMDS/AS400MAIL 1.BAT’) RMTLOCNAME(’192.168.x
5回の閲覧0件のコメント
Kawahara
- 2009年4月24日
- 1 分
AS400の異常をメールで通知する(2)
前回の続きです。 iSeries Access for Windows リモート・コマンドの設定 iSeries Access for Windows リモート・コマンドの設定 RUNRMTCMD CMD(‘D:CMDSAS400MAIL 1.BAT’) RMTLOCNAME(‘192.168.xxx.xxx’ *IP) CCSID(943) これでいけました。 上の’D:CMDSAS400MAIL.BAT’部分をRUNRMTCMD CMD(‘D:CMDSAS400MAIL.BAT 1’) RMTLOCNAME(‘192.168.xxx.xxx’ *IP) CCSID(943) などにするとAS400Mail.vbsのCASE文のメッセージでメールが送信されます。 ちなみにメッセージをモニタする方法はiSeriesナビゲーターでしか無いらしい。あと、AS400MAIL.BATに@ECHO OFFを設定しないと標準出力のプリンタからなんか出てきます。 以上がAS400をDBとしてしか使えない人によるAS400の監視方法でした。また、より良い方法を求
1回の閲覧0件のコメント
Kawahara
- 2009年4月22日
- 2 分
AS400の異常をメールで通知する(1)
AS400の異常をメールで通知する方法を探していたが、外部のSMTPサーバーを利用してメールを送信する事はできない。SMTPサーバーを立てても日本語は扱えない。SMTPサーバーを立ててもユーザーが無いと送信できない などの諸事情と自身のAS400に対するスキルの無さを踏まえた上で下記の方法を取った。 AS400自身からメールを送信することは諦めて、RUNRMTCMDを使う こうしてしまえばあとはWindowsの領域に無理矢理引きずり出せる。VBScriptは起動時にcscript AS400Mail.vbs としなくてはならないので、呼び出し用のbatファイルを組み合わせました。メールのSubjectとBodyをvbs内で設定するようにしたのは、batファイルから渡せなかった為の妥協です(汗)。 AS400Mail.vbs Set a = CreateObject("CDO.Message") a.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/s
2回の閲覧0件のコメント
Kawahara
- 2009年4月9日
- 1 分
i5(AS400)でCURRENT_TIMEの区切り文字
SELECT CURRENT_DATE, CURRENT_TIME FROM TESTLIB.TEST こんなSQLを流してみると、ODBCとiSeries Access for Windowsで時刻の区切り文字が違う事を発見。日付を数値で格納しているカラムへ現在の日時を保存するためのクエリが接続方式によって若干変わります。 現在時刻→数値(hhmmss) ODBC CAST(REPLACE(CAST(CURRENT_TIME AS VARCHAR(10)), ‘:’ , ”) as INTEGER) iSeries Access for Windows CAST(REPLACE(CAST(CURRENT_TIME AS VARCHAR(10)), ‘.’ , ”) as INTEGER) iSeries Access for Windowsでの確認はC:Program FilesIBMClient AccessSharedcwbundbs.exeを使いました。※iSeries Access for Windowsインスト
0回の閲覧0件のコメント
Kawahara
- 2009年4月7日
- 2 分
i5(AS400)の特殊文字を含むカラム名の取扱い
i5(AS400)に対してODBC経由でSELECTはもちろん、INSERT,UPDATEなどのクエリも問題なく処理できるのですがプログラムのインストールとは別にIBM iSeries Access for WindowsをインストールしODBCの接続設定をしないと動作しません。しかもODBCの接続設定名も間違っていてはいけません。 そのためiSeries Access for Windowsに含まれるIBM.Data.DB2.iSeries(.Netプログラミングサポート時にインストールされる)を利用してクエリを実行するにはどうすればよいか悩んでました。 というのも、@@TESTというカラムが存在していた場合にODBCなら[@@TEST]と記述すれば問題なかったが、iSeries Access for Windowsで同じように記述するとエラーとなる。 結局、"(ダブルクォテーション)を使えばうまく行くことがわかった。実際には"@@TEST"となる。"(ダブルクォテーション)はC#上でも特殊文字なので記述が面倒だけど。 public void
20回の閲覧0件のコメント
Kawahara
- 2008年12月22日
- 1 分
AS400でCWBSY0011エラー
AS400でQSECOFRでログインできなくなった。iSeries AccessのODBCや5250エミュレータでCWBSY0011エラーが発生。手動で電源を切った後コンソールでログインしていないから? WRKUSRPRF QSECOFR にて状況を*DISABLEDを*ENABLEDに変更すると解決した。プリンタセッションからSQL Serverへのテーブルコピーまで使い回していたのでエライ事に。しかし情報少ない(ググって1件のみ)。下記サイトのおかげで助かりました。ありがとうございます。 参考サイト #AS400 #ODBC
38回の閲覧0件のコメント