NECのオフコン情報掲示板(ノウハウ系)
NECのオフコンを活用するためのノウハウを話し合うための掲示板です。 |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
Re: RDBに項目追加をしたいのですが、DDFの修正方法がわかりません | |
EXCHANGE 2012-5-4 5:04:08
[返信] [編集] ☆ A−VXの場合、 (1)SYS@DDFにマージされたDB定義 (2)COBOLで使用するCOPY句定義 (3)MIX(キーなし複数順編成)で領域確保された実データ 上記3つは別々に作成されます。 ☆ AVX以外の他のデータベースの場合、create tableコマンドでレイアウト定義と実領域が同時に作成され、COBOLからもCOPY ALL FORMATS OF DATABASE 式にテーブル定義を直接参照できるようになっています。(もっとも最近はAVXもCOBOLからの直接参照はできるようになっているみたいですが。。) ☆ (1)〜(3)が別々で、仮にズレていても定義時に警告が出ないため、定義間のズレによってプログラム実行時に不具合が起こらないように気をつけて開発する必要があります。 ☆ 今回は既存のテーブルの最後尾のFILLER部分に新規項目を追加するということでしたよね。 ☆ それでしたら、ローカルの HOGEHOGE-DDF --> SYS@DDFへのマージをおこなっても、修正を施していない既存プログラムの実行には影響は無いはずです。 ☆ * COPY句の最後尾に項目を追加してFIILERのバイト数を減らす。 * プログラムを修正もしくは新規開発する。 * 項目が追加されたテーブルをSYS@DDFにマージする といった一連の開発手順でよいと思います。 ☆ ただし、以下の点は重要なので、十分考慮しておいてください。 ☆ 追加項目が数字項目の場合、既存のデータのFIILER部分に数字以外の項目が入っている場合があります。修正後のプログラムがこの部分を使用すると、実行時に NON-NUMERICエラーを引き起こす可能性があります。COMP−3項目は特に要注意です。 あらかじめRDBQの一括更新などで、数字0をセットして初期化しておくことをお勧めします。 ☆ 追加項目が漢字項目の場合はRDBQでの初期化ができないようですので、簡単な初期化プログラムを作成してあらかじめINITIALIZE命令などで初期値をセットしておくほうがよいでしょう。運用開始後に漢字として正しくないものが入っているレコードのみを抽出して初期化するのはかなり難しいです。 (追伸)RDBQのことを申しましたが、AVXの開発初心者の方でしたら「RDBQ」を使わず、はじめから「RDBQ2」の方をお使いになることをお勧めします。 RDBQ2の方が機能的にも操作的にも格段に優れているからです。 なお、ユーザとして使われる方にはRDBQもRDBQ2もともにお勧めしません。SKYLINKなどをお勧めします。 (AVX −> OPEN移行後のことを考慮して、というのが理由です) | |
Re: RDBに項目追加をしたいのですが、DDFの修正方法がわかりません | |
ターラヤン 2012-5-2 20:12:11
[返信] [編集] こんにちは。 >・ユーザーDDFに項目追加後、併合は、普通に日中、基幹業務稼働中に実行しても、 >問題ないでしょうか。 >SYS@DDFは、RDBQとかskylinkくらいしか影響はないような気がしますが・・。 業務稼働中はやらない方がよいのではないでしょうか。 WindowsやUNIXでも、日中基幹業務がガンガン動いている最中にOracleの テーブル作成とかはしないと思います。 併合によって業務に使っているデータが壊れることは無いと思います。 SYS@DDFに併合するということは、SQL文のcreate table xxxに相当するので 単にテーブルの定義を行うだけです。 でも普通はシステムに変更を加えるようなときはバックアップは取っておきますよね。 プログラム開発の順番は自由ですが、普通は以下のような感じで行います。 1.表定義保守(#DDM)の表定義で、ユーザDDFに表&テーブル定義。 2.表定義保守(#DDM)のライブラリ出力で、COBOLのレコード記述項用の ソースを出力。 3.COBOLでプログラム作成。このとき2で作ったソースをレコード記述項用と してCOPY文記述。 4.表定義保守(#DDM)の併合で、ユーザDDFからSYS@DDFに表定義を併合。 このとき一緒に実ファイルの領域確保も行う。 1は、これからプログラムを作るので、まだ実業務環境には表定義も実ファイルも作らずに、 準備だけしておく。 2は、1で定義した情報を元にレコード記述項の情報を作る訳で、システム上の情報とCOBOL プログラム上のレコード記述項の情報を常に一致させるためには必須。レコード定義のCOPYを 手で直したり、直接COBOLソース上に記述したりしていると、プログラムを改修したりした時に、 システムとプログラムのテーブル情報が一致しなくなる原因になります。(とはいえ、レコード 記述項を手で直したりはよくやっていますが。) 実際に実業務環境に組み込んでもOKとなったら、4でユーザDDFの情報をSYS@DDF に併合することになります。(テスト環境があれば、ユーザDDFからテスト環境のサーバの SYS@DDFに併合してテスト実施、テスト終了後に実業務環境のSYS@DDFに併合して 運用開始という形になるのかもしれません。) 基本的にこのとき#DDMで実ファイルの領域確保も同時に行います。(#ABCとかで作る 訳ではない) | |
Re: RDBに項目追加をしたいのですが、DDFの修正方法がわかりません | |
iga 2012-5-2 13:52:49
[返信] [編集] こんにちは。 ご親切にありがとうございます。 やはりSYS@DDFに併合しないとだめなんですね。 #DDFのファンクションに、「併合」というのはあったのですが、 それを実行しても大丈夫でしょうか? というのも、 ・ユーザDDFに項目追加後、併合を実行したら、何か既存の本番データが上書きされて、消えてしまうことはないのでしょうか ・ユーザーDDFに項目追加後、併合は、普通に日中、基幹業務稼働中に実行しても、問題ないでしょうか。SYS@DDFは、RDBQとかskylinkくらいしか影響はないような気がしますが・・。 突然稼働中のプログラムは暴走したり、 障害起きたりしませんでしょうか。 まずはユーザーDDFに追加 → SYS@DDFに併合 してから、じっくり cobolプログラムの修正をしようかと思っているのですが・・。 その際、RDBファイルのcopy句も修正します。 | |
Re: RDBに項目追加をしたいのですが、DDFの修正方法がわかりません | |
富山清風 2012-4-26 9:36:03
[返信] [編集] igaさん がんばってますね。 >ユーザDDFを修正したのですが、 >もしかして、SYS@DDFに併合しないといけないのでしょうか そのとおりですね。 SYS@DDFに併合しないと、RDBQにも、skylinkにも表示されません。 また、私の認識では、 COBOLのプログラムでは、「表定義の有無」は関係しますが、 「表定義の項目名」などは関係なかったように思っています。が、・・・ とにかく、SYS@DDFに併合すれば、解決すると思いますので、 がんばって下さい。 | |
RDBに項目追加をしたいのですが、DDFの修正方法がわかりません | |
iga 2012-4-25 13:43:42
[返信] [編集] こんにちは。たまに拝見して参考にさせていただいておりますオフコン素人です。 よろしくお願いいたします。 RDBのFILLERに項目追加方法がわかりません。 #DDMで、→表定義→データディクショナリファイル名、 で呼び出して、FILLERに追加して、DDF出力、しました。 が、RDBQで見ても、skylinkにも追加項目が表示されません。 もちろんプログラムでも認識されません。 なにか作業も漏れているでしょうか。 ユーザDDFを修正したのですが、 もしかして、SYS@DDFに併合しないといけないのでしょうか? | |
Re: A−VXから直接docuworksプリンタに印刷なんて無理ですよね。 | |
えくれあ 2012-4-19 16:58:59
[返信] [編集] BizReporting及びPrintBrigeを使用(経由)しないとプリンタに印字できないのでしょうか? | |
Re: ソースユニットライブラリメンバのコンパイル | |
EXCHANGE 2012-4-14 7:15:33
[返信] [編集] ☆ 追伸: JSCBLはSYS@JSLをアロケートしてここに格納しておいてください。 RUN=^^^^^にて実行する場合、 JSCBLをローカルのJSライブラリに格納してしまうと、 RUN=のパラメータの後尾に FIL=(JSCBLの格納されているライブラリ名), DEV=(格納先デバイス名)などの指定が必要です。 たとえば、 RUN=JSCBL,(hogesource,hoge-SUL),FIL=hogehoge-JSL,DEV=MSD; | |
Re: ソースユニットライブラリメンバのコンパイル | |
EXCHANGE 2012-4-14 6:51:11
[返信] [編集] ☆ といっても、マニュアル参照!というだけでは 全く取り付くしまがないでしょうから、 ひとつだけ簡単なコンパイル用のJCLを掲載します。 ただし、特定の環境下でのパラメータ指定ですので、マニュアルを参照してパラメータの指定を考えてください。 (JSCBL)見本 /RUN CBL85,SSW1=ON; SUD=MSD_SUF=&1_LBD=MSD_LBF=COPY句の格納先ライブラリ名等_CUD=MSD_CUF=USERCUL_ WKD=TEMPORARY_WSZ=9000_PRD=STN_ PRG=&0_MOD=REPLACE_ DBG=SOURCE_OPT=YES_SCK=NO_SCH=_DLM=ALL_ BUF=STANDARD_CMO=NATIVE_LNT=NO_ RNG=YES_RRM=MOVE-MODE_SLM=SOURCE_SSN=_RSN=_STN=ANK_ USG=MULTI-SEPARATE_SIZ=_DIO=YES_NXT=LINK_ /> ; コンパイル実行時は、 RUN=JSCBL,(ソースメンバ名,メンバが格納されているソースライブラリ名); コンパイル成功時は確認後、続けてリンカが呼び出されてリンクされ、出来上がったロードモジュールはUSERLMLへ格納される。 ☆ 内容に誤りがあれば適当に修正してください。 | |
Re: ソースユニットライブラリメンバのコンパイル | |
EXCHANGE 2012-4-14 6:16:46
[返信] [編集] > ソースユニットライブラリ(SUL)メンバのコンパイル方法を教えて頂けますでしょうか ☆ ちょっと一言では説明しづらいです。 「COBOL85言語解説書」「COBOL85プログラミング手引書」「ユーティリティ説明書」あたりをご覧下さい。他のCOBOLでのご経験がおありであればより理解しやすいと思います。 > コンパイル後は自動でロードモジュールライブラリに格納されるのでしょうか? ☆ コンパイル−>リンクと言う順序でロードモジュールを生成しますので、どこへ格納されるかは、基本的にはリンカのパラメータ指定によると思います。 なお、コンパイラのNXT=LINK_ の指定にてUSERLML(事前に別途アロケート必要)へ格納されたと思います。 >パラメータライブラリ(PML)のメンバを ロードモジュールライブラリ(LML)へ追加する(コンパイル?)事も可能ですか? ☆ パラメータの中には (1)メニューパラメータ (2)SMARTパラメータ (3)#ABCなどのパラメータ などがありますが、 メニューパラメータは#MENUMにて翻訳すればLMLへ追加できたと思います。翻訳せずにパラメータのままで利用する(2)(3)はできないと思います。 ☆ 最近はあまり首を突っ込んでいませんので間違った部分があるかもしれません。 | |
ソースユニットライブラリメンバのコンパイル | |
えくれあ 2012-4-13 9:45:41
[返信] [編集] ソースユニットライブラリ(SUL)メンバのコンパイル方法を教えて頂けますでしょうか。 また、コンパイル後は自動でロードモジュールライブラリに格納されるのでしょうか? それから、パラメータライブラリ(PML)のメンバを ロードモジュールライブラリ(LML)へ追加する(コンパイル?)事も可能ですか? | |
Re: ロードモジュールライブラリ(LML)のメンバ追加 | |
EXCHANGE 2012-4-13 3:47:53
[返信] [編集] ☆ 本HPの中の #LBMの説明をご覧下さい。 http*//www.offcom.jp/modules/amanual/index.php/uti/at/lbm/lbm01.html | |
ロードモジュールライブラリ(LML)のメンバ追加 | |
えくれあ 2012-4-12 17:11:44
[返信] [編集] オフコン初心者です。 ロードモジュールライブラリ(LML)にメンバを追加する方法を教えて頂けませんか。 | |
「DEVLOP」を「A−VXの説明書」に登録していただき、ありがとうございます。 | |
江須扇 2012-3-13 20:01:35
[返信] [編集] 「DEVLOP」を「A−VXの説明書」に登録していただき、ありがとうございます。 「A−VXの説明書」−>「COBOLサンプルプログラム」−>「開発支援プログラム(DEVLOP)」 h*ttp://www.offcom.jp/modules/amanual/index.php/cobol/devlop/devlop.html 注)上記頭の2文字は”*”は削除してリンクしてください。(アップロード時エラーになる為の対応です) ターラヤンさん使い心地はいかがですか? ご感想をいただけると幸いです。 PS.大変恐縮ですが私の原文が違っていたので修正願います。 「最呼出」−>「再呼出」 よろしくお願いします。 | |
Re: 印刷すると漢字が変わってしまう | |
kannji 2012-3-5 15:22:03
[返信] [編集] JIS78からJIS2004様 ご返信ありがとうございます。 しかも大変詳しく本当にありがたいです。 質問しておいて、まだ確認しておらず 申し訳ありません。 今から実施してみます。 そして結果報告します。 | |
Re: 印刷すると漢字が変わってしまう | |
kannji 2012-3-5 15:20:23
[返信] [編集] EXCHANGE様 ありがとうございます。 漢字コード表確認してみます。 結果また報告したいと思います。 | |
Re: 印刷すると漢字が変わってしまう | |
JIS78からJIS2004 2012-3-5 13:49:14
[返信] [編集] こんにちは、ちょうどAVXの旧字・新字対応の外字を作成しています。 結果を言うとエミュレータのフォントがFA明朝になっていない事が原因だと思います。 AVXで管理している文字はJIS78(正式にはJIS78ではないのですが) で管理されていますので、必ずエミュレータの設定もFA明朝(JIS78)に指定しなくてはいけません。 印刷についてはAVXサーバから出力しますのでJIS78で出力されます。 印刷はサーバからですので、各エミュレータの入力設定もFA明朝にしないとおかしくなります。 今回のこの文字はJIS78−JIS83の変更文字ですのでWINDOWSで表示した場合(MS明朝)と FA明朝で表示した場合は旧字と新字の関係になります。 WINDOWSでもフォントによって変わりますのでご注意を (また、MS明朝でもXPとWIN7では JIS90とJIS2004になります。) AVXでは変更文字の新字を持っていませんので質問にあった文字を入力するのであれば 外字での登録になります。 私がよく作っていた文字は "遥" でした。 エミュレータ毎に使用フォントの設定をしますので全端末にFAの設定が必要です。 また、EXCELでもFA明朝にすれば旧字になります。 余計なことを書いてしまってわかりづらくなりましたが、よかったら参考までに・・ | |
Re: 印刷すると漢字が変わってしまう | |
EXCHANGE 2012-3-2 20:06:55
[返信] [編集] WSエミュレータ同梱のマニュアルの「Q&A」及び付録の漢字コード比較表をご覧下さい。 (FA明朝を使用する) | |
印刷すると漢字が変わってしまう | |
kannji 2012-3-1 16:01:40
[返信] [編集] こんにちは。漢字のことで困っています。 WSエミュレータ画面で、 「砺」と入力すると、 「礪」と印刷されてしまいます。 画面上の表示は「砺」です。 windows上(エクセルなど)で 「砺」と入力して、 印刷すると、普通に「砺」と出ます。 たまに変わった漢字でこのようなことがあります。 得意先に出力する帳票などで、それが、 人名や社名だと、かなりまずいです。 どうにか対処できないものでしょうか。 【システム運用環境】 OS:A-VX02 プログラム:COBOL WSエミュレータ:ver21.0 ドットプリンタ:700JX3 レーザープリンタ:マルチライター8250N サーバ:EXPRESS5800/V618-L | |
Re: NEC Express5800/600 でコンパイル | |
ターラヤン 2012-2-20 22:08:02
[返信] [編集] こんにちは。 質問の意味は、 例えば10個ソースがあって、 JCLを書いて、1個コンパイルしたら、 JCLを書き換えて、次のソースをコンパイルして、 またJCLを書き換えて、次のソースをコンパイルして、 : : と10回繰り返します、ということでしょうか。 1つのJCLで10個分のコンパイルを記述する、 1つのJCLに1個で、10のJCLを作る、 ということをすれば、一々編集しなくても 良いのではないでしょうか。 あるいは、ファイル名のような編集する箇所を JCLの一時切り換え機能を使うようにすれば、 一々編集しなくてもよくなります。 | |
NEC Express5800/600 でコンパイル | |
KEN 2012-2-20 15:05:16
[返信] [編集] はじめまして。 NEC Express5800/600 でCOBOL85のソースを コンパイルする場合、A-VXエディタでJCLを 編集して実行する操作でよいのでしょうか? ※実物を所持していない上に、これから使用 しようとしている段階の者です。 ご教授願います。 |
新規投稿 | スレッド表示 | ツリー表示 | 投稿順表示 | i-mode | トップ |
BluesBB ©Sting_Band