4

私は同時に、Delphi のデータベース アーキテクチャと [MS-Access] SQL について独学しています。テーブルと DBGrid を結び付ける方法を理解しており、グリッド内の変更が基になるテーブルに自動的に編集、挿入、追加、更新、投稿などされる方法を楽しんでいます。

また、[ADO]クエリを開いて実行し、結果のデータをグリッドに表示する方法も理解しています。

クエリ結果を表示する DBGrid を編集してテーブルを変更することについて、私がずっと気になっていること。私のオンライン検索では、クエリ結果が編集されている場所で見つかったすべての例には、「SELECT ... FROM oneTable」よりも複雑ではないクエリが含まれているようです。DBGrids は、個々のテーブルのみを操作したり、クエリ結果を表示したりするためのもののようです。

私自身、2 つ以上のテーブルを含むクエリ結果を操作しようとすると、常に何らかのエラーが発生します (キー列情報が不十分、パラメーターが欠落している、またはその他のメッセージ)。何か基本的なことが欠けているように感じます。または、DBGrid が個々のテーブル以外の編集に使用されることはめったにありません。私が欠けているものを学ぶために私が探すかもし​​れない提案はありますか? 最も一般的に提案されているリンク (delphi.about.com の db レッスンなど) は、この問題に対処していません。

編集: Remou の応答は、私が抱えていた問題を説明するのに大いに役立ちます。したがって、MS-Access db だけを超えて一般化することで、質問を少し編集します。他の一般的なデータベースで DBGrid を介して複雑なクエリを更新できますか?

4

3 に答える 3

1

Delphiについては答えられませんが、MS Accessでは、クエリを正しく構造化し、更新可能にする場合はキー列を含める必要があります。これはほとんどのデータベースで一般的であり、Dephi自体に関係するものよりも問題の原因である可能性が高いと思います。

詳しくは:

于 2012-07-02T19:30:37.403 に答える
0

通常、私はこのステートメントをupdate sqlで使用しました:update where field =;

うん、私のデータベース設計では、正確に1行を更新できるように、すべてのテーブルに主キーが必要です。この組み合わせ(主キー付きのテーブル+ sqlの更新)は、何年もの間私にとって魅力的なものでした。実は今まで。

よろしくイラワン

于 2012-07-07T01:52:34.947 に答える
0

レイアウトを使用する場合は、イベント(ADO)DataSet > Provider > ClientDataSetを実装するだけです。Provider.OnGetTabelName

于 2012-07-02T05:06:19.010 に答える