1

Delphi 2010 を使用しており、dbexpress を使用して MySQL データベースに接続しています。接続は 100% 機能し、データを取得しています。問題は、dbGrid を介してデータを更新しようとしているときに発生します。テーブル内のすべてのエントリを調べて、チェックを実行しています。ApplyUpdates メソッドを呼び出すと、「レコードが見つからないか、別のユーザーによって変更されました」というメッセージが表示されました。

DataSetProvider の updateMode を upWhereKeyOnly に変更すると、「レコードが見つかりません。キーが指定されていません」というメッセージが表示される状況になりました。追加してみました

BasysClientDataSet.FieldByName('idPolicy').ProviderFlags := [pfInUpdate, pfInWhere, pfInKey];

これをコードに追加しましたが、同じエラーが発生しています。ProviderFlags を SQLQuery に追加しようとしましたが、そのようなフィールド「idPolicy」がありません

4

3 に答える 3

1

クライアント データセットではなくソース データセットで行ったのと同じように、すべての主キー列にプロバイダー フラグ pfInKey を設定してみてください。これは、db express がこれらの設定を無視したときに、クライアント データセットでフィールドが何をしているのか理解できなくても、私を助けてくれましたか? バグだと思います。

于 2012-10-29T09:10:35.897 に答える
0

DataSetProviderコンポーネントのResolveToDataSetプロパティをTrueに設定してみてください。

于 2011-10-12T18:47:25.853 に答える