最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

12.4.Q.ファイル作成の時の、CPYFとCRTDUPOBJの違い

[ Previous ] [ HOME ] [ Upper ] [ Next ]


CPYF CRTFILE(*YES)(複写)

  • ライブラリーの指定をしなくても、ライブラリーリスト(*LIBL)から検索してくれる。
  • QTEMPにワークファイルを作る時、あくまで、データの複写なので、レコードが最低1件複写される。
  • 総称名が使えない。
  • 開発プログラムのテストなどの目的で、論理ファイルをCRTFILE(*YES)で、他のライブラリーに複写すれば、同じキーの物理ファイルが作成されます。物理+論理にしなくてもすみます。
  • CPYFでは、OS内部では通常のレコード単位のデータコピー用のプログラムが動きますので、そのプログラムが必要とする、バッファなどの環境はそのCPYFで使われます。このため、OVRDBF NBRRCDS() SEQONLY(*YES)なども、有効です。但し、ファイル名の指定変更は、CPYFでエラーになります。
  • 削除済みレコードは転送されませんし、キー付きファイルの場合、そのキー順に複写されます。したがって、まったく同一のファイルが作成されるわけではありません。

CRTDUPOBJ XXXX *FILE XXXXX DATA(*YES/*NO) (複製)

  • DATA(*YES)の時は、複製元が、使用中だと複製できません。
  • 総称名 AAAA*などとすれば、一括複製できます。物理ファイルと論理ファイルが同じ名称で始まっていれば、まとめて複製できます。
  • 昔、CPYFよりもCRTDUPOBJ DATA(*YES)の方が、早いと聞きました。これは、CPYFは、ほんとにデータを1レコードづつアクセスパス経由で複写しますが、CRTDUPOBJは、ファイルオブジェクトごと、(データもひっくるめて、ファイルイメージのまま、といえばいいのか)複製するから、らしいです。
  • ライブラリー名指定を必須とするので、*LIBLからは検索できない。但し、RTVOBJDと組み合わせて、RTNLIBを指定すれば、ライブラリー名を指定せずにできます。
  • CRTDUPOBJは、オブジェクトの複製作業なので、レコード単位のデータ複写とは違います。よって、削除済みのレコードも、そのまま、削除済みレコードとして複製されてしまうことに注意してください。

CRTPF/CRTLF XXXXX OPTION(*NOSRC *NOLIST)

  • ソースファイルがどこにあるか、はっきりしている場合使えます。(当然ですが)
  • もし、修正中のシステムだったりすると、ソースが修正されて(現在、それに基づき変更中とか、移行直前とか)、レベルチェックエラーになるかも。
  • 当然ですが、複数まとめて、一括作成はできません。後で、論理ファイルが増えた時なども、気をつけねばなりません。

私は、CRTDUPOBJを使っています。でも、上記の注意(ロックとライブラリー名)に気をつけてください。本来はライブラリー名は指定したくないはずです。やっぱり、RTVOBJDでライブラリー名を取り出してからがいいでしょうね。ワークファイルの場合も、私は、CRTDUPOBJを使っています。AAMST*とかで、複製すれば、後で論理ファイルが増えても、すべて複写されるからです。たいていは、DATA(*NO)で使っています。

CRTDUPOBJ DATA(*YES)の時のロック(確か排他ロック)は、ある方がいいとも、ないほうがいいともいえます。それを使用する局面において、はっきりしてきますね。

追記

もし、物理ファイルとその論理ファイルが、別々のライブラリーにある場合、CRTDUPOBJで物理ファイルと、論理ファイルを、各々指定して(ライブラリーが別なので、物理ファイルと論理ファイルは、各々別に実行することになる)複製する場合、その論理ファイルは、複写もとのライブラリーの物理ファイルに接続されるようです。でも、物理ファイルとその論理ファイルは、たいてい同じライブラリーにセットすべきですね。それは、SAVRSTの時も、厄介ですよ。

  • 物理ファイルから、従となる論理ファイルを見るには、DSPDBR 物理ファイル名
  • 論理ファイルから、主となる物理ファイルを見るには、DSPFD 論理ファイル名 *ACCPTH

です。

それから、このように、はた、と後で分かったことは「追記」として、記ます。変に、文章中に入れると、修正された部分を識別するのが面倒なので。


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送