0

Delphi XE7 で DataSnap サーバーに接続するクライアントをセットアップしました。クライアントで作成された SQL 文字列をサーバーに送信して、Firebird DB に対して実行する必要があります。私は FireDAC を使用していますが、DB Express を使用しても同様の結果が得られます。

サーバー上に TFDPhysFBDriverLink -> TFDConnection -> TFDQuery -> TDataSetProvider があります。

クライアントに TSQLConnection -> TDSProviderConnection -> TClientDataSet -> TDataSource -> DBGrid があります

TFDQuery は、設計時に SQL.Text 値を必要とするようです。(select * from Cust_Master など) SQL 文字列 (select * from Proj_Master など) をサーバーに送信して、それを TFDQuery に読み込むことができます。SQL.Text を変更する前後に影響を受ける行を確認すると、顧客とプロジェクトのクエリに対して返される適切な行数を取得します。問題は、クライアント側では、サーバーに送信した SQL、つまりグリッドに表示されているプロジェクトではなく、設計時の SQL、つまり顧客の結果のみを取得することです。SQL をサーバーに送信した後、ClientDataSet.Refresh を呼び出します。

さまざまな SQL クエリをサーバーに送り返す必要がありますが、設計時にすべてを定義することはできません。これを達成するために適切なコンポーネントを使用していますか?

4

3 に答える 3

0

ClientDataSet を閉じてから再度開く必要があります。単純なリフレッシュではうまくいきません。

于 2014-12-01T09:20:53.377 に答える