2011-12-06 1 views
2

私は3 TQueries有し「テーブルが読み取り専用である」:qy_master, qy_detail, qy_detail2を、qy_detail2のマスターはqy_detailで、qy_detailのマスターはDataModuleの私は、これらのクエリをアクティブに作成するときにすべてのクエリは、データソースに対応する、Iは、DataModuleのにクエリを配置している、qy_Masterです。EDBEngineError

'qy_detail.open'を試してみましたが、qy_detailを開いても問題はありませんが、私はSQL文を変更しませんが、なぜこのエラーが発生するのか分かりません。

qy_detail.Active := Trueでも試しました。

BDEとODBCのデータソースを介して接続されたSQL Server 2005を使用しました。

この問題を解決するには誰も助けてください。

答えて

1

TQuery.RequestLive = trueに設定しましたか? RequestLiveはデフォルトでFalseです。常にクエリを読み取り専用の結果セットとして返すよう強制します。 documentationから

A TQueryのは、結果セットの2種類を返すことができ

:(ユーザーがデータコントロールでデータを編集することができ、かつ ポストへの呼び出しを変更しているが発生した場合のTTable コンポーネントと同様に「ライブ」をデータベースに送信)、表示用に「読み取り専用」 の目的のみ。ライブ結果セットをリクエストするには、クエリコンポーネントの RequestLiveプロパティをTrueに設定します。