SQLを始めたばかりの初心者です。
oo4oやADOを使用して、オラクルサーバーのデータをSELECT文で
オラクル内の複数のテーブルを結合してListViewで表示する
プログラムを作成中です。
オラクルサーバーにメインデーターがあり
各クライアントにMDB形式でマスタデータがあります。
MDBのマスタデータにはたとえばですが、テーブル名 [商品テーブル]
フィールド名[コードナンバー]、[商品名]...
となっており、サーバーには、テーブル名[商品コード]
フィールド名[コードナンバー]、[受注日]....があるとします。
クライアントからoo4oやADOを使用して、サーバーのデータを
SELECT文でオラクル内の複数のテーブルを結合して
ListViewで表示するのはできます。しかし
[コードナンバー]は取得できるのですが、サーバーのテーブルには、
[商品名]がないためとうぜん表示できません。
この場合、オラクルから取得したデータをマスタデータのあるMDBに新しくテーブルを
作りそこに一度格納して再度ADOで結合処理して
商品名を表示する方法しか考えつかないのですが、
ほかに良い方法はありますでしょうか?
ADOで接続MDBに保存再度ADOで接続して表示では
レスポンスが悪いかなと思いまして...
*VB6 winXP-pro オラクル9i
No.2ベストアンサー
- 回答日時:
サーバにもマスタのテーブルがあってそれをMDBにおとしてクライアント起動時に配布している可能性が高いと思います。
マスタデータを各クライアントのMDBしかもっていないとは考えにくいです。(整合性を確保できません) まず、サーバのテーブルレイアウトをご確認ください。どうしても、サーバにそのようなテーブルがないのであれば、それを作ることが可能であれば作ってマスタを一元管理するべきであると思います。
サーバのデータベースを改変することができないのなら、クライアントで処理するしかないと思います。 オラクルのテーブルをリンクテーブルとしておけば一回のSQLで処理できます。
16August様、ご回答ありがとうございます。
ご指摘の通りマスターデータをメインサーバーに置かず各クライアントにMDBとして持つ方法は整合性がとれず私もおかしいと思います。ただこのシステムを導入したメーカーの仕様でありシステムの基盤となる変更は不可なのです。
マスタはパソコンの起動時や更新プログラムによってマスタを管理している端末からダウンロードされます。
>オラクルのテーブルをリンクテーブルとしておけば一回のSQLで処理できます。
なるほどいい方法だと思います。
試してみます。ありがとうございました。
No.1
- 回答日時:
サーバにあるメインデータに商品名を持たせましょう。
サーバとクライアントの両方にデータがあるという例が提示されています。この場合「サーバにあるデータが『主データ』」で「クライアントにはその複製がある」と考えるのが自然です。
クライアント側にのみ名称があるということは、1つのコードに対して各クライアントで異なった名称を付けられるということです。
たとえば、在庫表を作るときに、操作するクライアントごとに商品名が異なっていたら、困ってしまいます。
全員が共有する・共用するデータは1カ所で管理しましょう。
moose11様
ご回答ありがとうございます。
ご指摘の通りマスタの管理の仕方が間違っていると思います。
しかしこのシステムを導入したメーカーの仕様であり、システムの変更は不可なのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
アクセス レコードセットを更...
-
ビューのソートについて
-
ERROR1062:Duplicate entry.......
-
マテリアライズドビューとスナ...
-
結合テーブルでINSERTする方法...
-
SQL文の結合(一対多)がわから...
-
テーブルで一番古いレコードだ...
-
MS Accessを共有した際にファイ...
-
Oracleで上書きImportはできま...
-
SQL Server に画像を登録
-
ACCESSとEXCELLの共用
-
構文エラー : 演算子がありませ...
-
住所のDBテーブル、マスターの...
-
Accessの処理速度を速めるため...
-
IF NOT EXISTを使用するINSERT文
-
削除したテーブルを元に戻すこ...
-
CSVファイルを毎日、全レコード...
-
left joinなどで結合対象のレコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Accessのテーブルデータを一気...
-
Oracleで上書きImportはできま...
-
テーブルで一番古いレコードだ...
-
accessでレコード更新直後の反...
-
ビューのソートについて
-
このISAMでは、リンクテーブル・・
-
同一テーブルのデータを参照し...
-
アクセス レコードセットを更...
-
マテリアライズドビューとスナ...
-
住所のDBテーブル、マスターの...
-
ACCESSで容量が50MBになった...
-
重複クエリを使ったデータ削除
-
処理の途中で停止させ、再開さ...
-
結合テーブルでINSERTする方法...
-
SQL文の結合(一対多)がわから...
-
ERROR1062:Duplicate entry.......
-
IF NOT EXISTを使用するINSERT文
-
htmlコードで書かれた表にphpで...
-
Accessのインポートについて(上...
おすすめ情報