No.5ベストアンサー
- 回答日時:
#2です。
>プログラムの分だけ変更が必要になるということですか?
プログラムの変更をしなくても、物理ファイル又は論理ファイルが
変更されたときはコンパイルという作業を行わないとプログラムが
エラーとなり動きません。
>あたらしいテーブルを作成するということですか?
オープン系でいうテーブルAS/400では物理ファイルといいますが
キーとなる項目(ここでは得意先CD)と追加したい項目だけ別の
物理ファイルを作成し、プログラム内でその項目を見に行くときは
得意先マスタではなく、新しいファイルを見に行くようにすることで
得意先マスタを変更するよりも楽に項目の追加の様なことはできます。
>後のメンテナンスとはどういったことですか?
後でプログラムの変更などがあった場合など、プログラムの仕様を
調べる必要があるときに、意味も無く行き当たりばったりのファイルを
多く使用していると、見づらく、理解するのに時間がかかり、
余計な時間をとられてしまいます。
※AS/400ではファイルの読み書きのタイミングが結構
難しいためファイル数が多いとそのときの状況をイメージするのに
苦労します。
No.6
- 回答日時:
>その追加する項目だけ別なテーブルに分けて対応することは不可能なのでしょうか?
AS/400のデータベースもRDBMS(DB2/400)可能ですよ。良く使用する方法です。あまりテーブルを細かくし過ぎると好ましくない場合もありますが。
>オフコンの世界
X86系RDBMS(MySQL, PostgreSQL, DB2_expressC) 有料RDBMS と方言はありますがSQL文の基本は同じです。
テーブル:物理ファイル(PF)
SQL文:論理ファイル(LF)のコンパイルが発生するのが唯一違う処でしょうか・・・・・コード形態もunicodeでは無くEBCDICですね。
この回答への補足
ご意見ありがとうございます。テーブルを分けることにより
#4の方が項目を追加することによって、最も作業工数のかかる部分としてあげられた、既存プログラムへの影響を防ぐことは可能ですか?
No.4
- 回答日時:
なんか微妙に噛み合ってないですね。
項目(フィールド)の追加で既存フィールドの桁数とは無関係と思う。
数字タイプなら32桁、文字タイプなら256桁、とかいけますよ。
”フィールド長”ではなく”レコード長”との勘違いであれば、あり得なくはない。
DB拡張は作業工数を度外視しても構わないなら大した手順ではないが、費用対効果の検討は必ずついて回るので、技術的な問題だけではすまないとは思いますが。。。
DBの拡張手順は以下の通り
1.得意先マスタの定義ファイルへ項目追加を行う。
2.新得意先マスタで追加された項目を影響の出るプログラムへ修正を入れる
3.旧得意先マスタのバックアップをとる。
4.旧得意先マスタの論理ファイル(LF)を削除する
5.旧得意先マスタの物理ファイル(PF)を削除する
6.新得意先マスタの物理ファイル(PF)を作成する
7.新得意先マスタの論理ファイル(LF)を作成する
8.新得意先マスタへ旧得意先マスタをバックアップから戻す
9.得意先マスタを使っているプログラムを全てコンパイルしなおす
まずは、テスト環境などで検証してから、本番環境で実施します。
2~8はユーザーが使わない時間(深夜や休日など)に行います。
これで一番時間がかかるのは項目2の部分で、システム規模にも寄りますが、影響度調査とプログラム修正で結構な時間がかかります。でも本当の目的は、追加した項目を有効利用するためのプログラムの開発でしょうから、DB拡張だけの時間では済みません。
また、別のテーブルを作成との事ですが、管理したり既存プログラムへの修正をする事を考えると、可能な限り1つにまとめるべきです。知識も無い・お金も無い・人もいない・時間も無い、などの無い無い尽くしになった時にだけ行われる最終手段という位置づけた方が良く、情シス以外が提案すべき内容ではない。
この回答への補足
参考になる、回答ありがとうございます。
おそらくレコード長の勘違いです。オープンシステムとは違い、作業工数の多さが目に見えてよく分かりました。
No.2
- 回答日時:
可能か不可能かと問われると可能です。
AS/400のファイルの項目追加・桁数の変更は簡単にできる
ものではありません。得意先マスタともなるといろんなところで
使用されているため相当の手間となります。
物理ファイルを変更する場合、それに伴うコンパイルされた論理
ファイルをすべて削除し、物理ファイルを変更・コンパイルした後
論理ファイルのコンパイルをしなおし、これらの物理・論理ファイル
が使用されているプログラムをすべてコンパイルしなおすという
作業が必要になります。
これを考えると、新しくファイルをひとつ作成したほうが簡単に
やりたいことができるとは思いますが、後のメンテナンスなどを
考えると極力とりたくない方法です。
この回答への補足
ご意見ありがとうございます。
>いろんなところで使用されているため相当の手間となります。
使用されているプログラムの分だけ変更が必要になるということですか?
あたらしいテーブルを作成するということですか?後のメンテナンスとはどういったことですか?
教えてください。
くどくどと聞いてすみませんがご教授お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- 仕事術・業務効率化 使用中のソフトで、インボイス制度に対応する為の作業料が30万以上。普通? 4 2023/06/15 21:26
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- 政治 憲法改正しないと国が守れないという大嘘をつく人をどう思いますか?自衛隊の戦力は世界でも上位ですし現行 13 2022/07/19 09:07
- 政治 憲法改正の目的は基本的人権と国民主権を国民から奪い取り無制限に人権無視政策を行うことか可能となる緊急 3 2022/07/09 07:05
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- 政治 緊急事態条項と緊急事態宣言の違いは分かってますか? ⚠️緊急事態条項(緊急事態宣言とは全く異なる)は 2 2022/05/06 08:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AccessのInsertクエリのあとつ...
-
検索結果の列数を動的に変更したい
-
Access レコードを追加できませ...
-
ACCESS 複数テーブル・複数フィ...
-
【Access】外部結合を行う前に...
-
Access2002 マスタテーブル変更...
-
Viewにインデックスは張れ...
-
異なるスキーマからデータを抽...
-
データを削除しても表領域の使...
-
postgreSQLのint型は桁数指定が...
-
ORA-00959: 表領域'****'は...
-
Data Pump で大量データインポ...
-
特定のスキーマのテーブルを一...
-
INDEXの無効化
-
SQL*Loaderで、データを加工し...
-
oracleのimpdpでORA-39166
-
SQLでスキーマ名(所有者名)の...
-
truncate文で全テーブルを一気...
-
Accessでボタンを押したらエク...
-
エクセルからアクセスにインポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access レコードを追加できませ...
-
ACCESS 複数テーブル・複数フィ...
-
検索結果の列数を動的に変更したい
-
列が255以上のCSVファイルをAcc...
-
AccessのInsertクエリのあとつ...
-
【Access】外部結合を行う前に...
-
INSERT文で発行したオートナン...
-
複数あるAccessのテーブルを一...
-
Accessで、マスター情報を参照...
-
Access2002 マスタテーブル変更...
-
複数テーブルをひとつのテーブ...
-
AS/400のDBについて
-
検索フォームで検索するものが...
-
ACCESSでの文字列の比較
-
コンボボックスの2段階絞込み
-
Accessのテーブル内の文字の置...
-
売価変更がある商品の売上金額
-
データを削除しても表領域の使...
-
Viewにインデックスは張れ...
-
異なるスキーマからデータを抽...
おすすめ情報