2

Updateデータウィンドウを初めて呼び出すと、1(成功)が返され、1になりSQLCA.SQLNRowsます。同じ画面で2回目の更新を途中で閉じずに実行すると、Update1が返され、 SQLCA.SQLNRows0になります。これが発生する理由について何か提案はありますか?

4

3 に答える 3

3

あなたの質問はいくつかのことにヒットしたようです。

まず、John Paul が言及しているように、更新された行がなくても Update() は 1 を返します。「何もしない」の場合、具体的な戻り値はありません。

第 2 に、ヘルプ ファイルに記載されているように、SQLNRows の値は DBMS に依存するため、関連する DBMS を知らずにそこに入力されている値についてコメントすることは困難です。ただし、それにもかかわらず、データウィンドウは一連の INSERT、UPDATE、および DELETE を 1 つの行のみを対象として発行するため、この値が取り込まれた場合、SQL ステートメントの数に関係なく、複数になることはないと思います。データウィンドウの問題。最後に発行された SQL ステートメントで影響を受ける行の数は、常に 1 である必要があります。

DataWindow Update() の影響を受ける行数を調べたい場合は、Update() の前にModifiedCount() + DeletedCount()の値を確認します。

幸運を、

テリー。

于 2009-01-09T15:39:23.077 に答える
2

PB を使用してから長い時間が経ちましたが、.Update() の戻り値は、単にコマンド (UPDATE) が DB によって正常に実行されたことを示す指標ではありませんか? これが正しい場合、行の値が実際には変化していなくても、成功すると 1 が返されます。SqlNRows は、変更された行数の実際の指標です。

于 2009-01-08T14:39:09.540 に答える
0

更新された回答:イベントUpdateの結果を取得できます。UpdateEndその場合、 と がrowsinserted, rowsupdated,ありrowsdeletedます。

元の回答: PFC を使用している場合に何が起こっているかを知る良い方法は、SQL Spy サービスを使用することです。非 PFC アプリケーションでbeep(1)は、データウィンドウのsqlpreviewイベントのように何もしない行を配置し、その行にブレークポイントを設定し、デバッガを使用して何が起こっているかを監視できます。データベースへの接続ブックの接続のトラブルシューティングで説明されているように、SQL ステートメント トレース機能またはデータベース トレース ツールを使用することもできます。

于 2010-03-11T15:58:23.417 に答える