Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報

[掲示板に戻る]


Re: RDBに項目追加をしたいのですが、DD... EXCHANGE 2012-5-4 5:04
Re: RDBに項目追加をしたいのですが、DD... iga 2012-5-28 13:47
Re: RDBに項目追加をしたいのですが、DD... EXCHANGE 2012-5-30 4:41
Re: RDBに項目追加をしたいのですが、DD... EXCHANGE 2012-5-30 4:54
Re: RDBに項目追加をしたいのですが、DD... iga 2012-5-30 9:49

5 Re: RDBに項目追加をしたいのですが、DDFの修正方法がわかりません
EXCHANGE 2012-5-4 5:04  [返信] [編集]

☆ 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移行後のことを考慮して、というのが理由です)






6 Re: RDBに項目追加をしたいのですが、DDFの修正方法がわかりません
iga 2012-5-28 13:47  [返信] [編集]

こんにちは。
ご親切にどうもありがとうございます。

ついでに聞いて申し訳ないのですが、

#DDMですが、
2.表定義を選んで
ディクショナリ名で SYS@DDFを選んで、

5.併合を選び、

処理モード:「置換」

入力元: xxDDF(ユーザディクショナリ)

併合表名: xxxファイル

指定確認 1 ok

とやればいいのでしょうか?


あと心配なのは、実データです。
いちおう直前に、バックアップは取りますが、
併合、(置換)したことにより、
実データに影響は一切ないですよね?

(まさか、データが全て初期化されてしまうとか・・・)

filler部は初期値のままです。

領域の確保はしないつもりです。

しつこくてすみません。かなり心配症なもので・・。

よろしくお願いいたします。

9 Re: RDBに項目追加をしたいのですが、DDFの修正方法がわかりません
EXCHANGE 2012-5-30 4:41  [返信] [編集]

☆ SYS@DDFへの併合の方法はそれで問題ありません。
  ただし、この表(テーブル)もしくはこの表を含む仮想表(ビュー)を何らかのプログラムから使用しているときは
  SYS@DDFへの併合そのものができません(エラーになる)ので、使っていないときに併合してください。
  
☆ 併合したことによりMSDにアロケートされている物理的なファイルには何の影響もありません。
 また、igaさんがやろうとされている「COPY句最後尾への項目追加」であれば、追加される新項目を使用していない従来プログラムに対しても動作上の影響はありません。(つまり、この追加項目を使用していない従来ソフトはリコンパイルの必要はありません)


10 Re: RDBに項目追加をしたいのですが、DDFの修正方法がわかりません
EXCHANGE 2012-5-30 4:54  [返信] [編集]

> この表(テーブル)もしくはこの表を含む仮想表(ビュー)を何らかのプログラムから使用しているときは。。

というのは、オープンされている(現在使用中)という意味です。
(単にプログラム内で定義されているという意味ではありません)
 表現が曖昧ですみせんでした。

☆ あらかじめアテンションにて実行中ファイルを確認したとしても
  その直後に誰かが問題のファイルをオープンしに行くかも知れませんから、ご心配でしたら、ユーザの方がすべて業務を終了されてから併合を行ったほうがいいと思います。
  
11 Re: RDBに項目追加をしたいのですが、DDFの修正方法がわかりません
iga 2012-5-30 9:49  [返信] [編集]

EXCHANGE様
ご親切にありがとうございます!
大変助かります。
もやもやしている部分がかなりすっきりしました。

なにせ誰も教えてくれる人がいないので、
実績が伴わず、
マニュアルを読んで想像している世界なもので
いつも大変不安です。

それでいてa-vxは当社にとって大変重要に基幹システムと
なっています。
利用者は常時60名ほどいます。
止まったり、データに不具合が生じたりしたら、
企業としての存続が危ぶまれるほどです。
それなのに上層部はITに全く理解がなく、
教育、人件費、設備に投資してくれません。
・・おっと愚痴になってしまいました。

とにかく助かりました。
どうもありがとうございました。

BluesBB ©Sting_Band