掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
別々のサーバーのテーブルに対してSQLを発行するには? (ID:28712)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
返信ありがとうございます。 検索キーによっては別々のテーブルに対象フィールドがある為, 結合した上でSQLを発行しなければならないと思いました。 ただ,SQLで完結した場合の方が早いかどうかは不明です。 ※以下の実験では検索キーが別々のテーブルにあるため一度全てのデータをClientDataSetに落としています。 DataSet間でINNER JOINみたいなことが出来ればいいんですが・・・ フィールドの参照設定を試してみましたが『この機能は使用できません』とメッセージがでました。 同じDatabaseを使用した場合は参照設定はできました。 別々のDatabaseを使用した場合がダメなのかもしれないので別途調べます。 各々のテーブルを一旦ClientDataSetに落としフィールドの参照設定を行うと 正常に値を読み込むことが出来ました。(処理時間:約2分) ただ検索の代わりにフィルターを使用したところ 『項'xxx'をフィルター式で使うことは出来ません』とメッセージがでました。 これは参照フィールドだからでしょうか? 参照設定を行ったClieantDatasetを再度DataSetProvider→ClientDataSetと設定を行うと, フィルターで条件を絞ることは出来ましたが2回もClientDataSetを経由させているせいか, 少々処理時間がかかりました(処理時間:約9分) 設定変更等をして早くならないか調べてみます。 (各コンポーネントの繋がり) サーバー1 → Table1(データ) → DataSetProvider1 → ClientDataSet1(ClientDataSet2の値を参照設定) → DataSetProvider3 → ClientDataSet3(フィルター処理) → DataSource1 → DBGrid1 サーバー2 → Table2(マスタデータ等) → DataSetProvider2 → ClientDataSet2 あとTQueryのヘルプ見落としていたんですが, 『異種間の問い合わせの作成』というのを見つけました。 試してみたんですが, 設計時:QueryをActive=TrueにするとDelphiが終了する。 実行時:QueryをOpenするとメモリエラー?が発生する。 という状態です。 この方法で繋げることできた人はいますでしょうか? よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.