問題は次のとおりです。ウィンドウに開いている行が存在するかどうかを確認し、そうでない場合は手動で行を挿入するデータウィンドウがあります。ある時点で、データウィンドウの更新を呼び出す前に、行がテーブルに挿入されています。私が更新を呼び出すと、行は既に存在し、更新の代わりに挿入を使用しているため、更新を保存できません。これを緩和する方法はありますか?PowerBuilderデータウィンドウで更新が必要なときに挿入する
dw_dates.SetTransObject(SQLCA);
dw_dates.Retrieve(gs_facility_pfi, is_pcn);
if(dw_dates.rowcount() = 0) then
int row;
row = dw_dates.InsertRow(1);
dw_dates.setitem(row, 'patient_ctrl_num', is_pcn);
dw_dates.setitem(row, 'pfi_num', gs_facility_pfi);
end if
TerryはItemStatus(get/set)を使用しています。しかし、私はあなたのコードについて奇妙なことに気付きます。 dw_datesに行がないが、その後に行1の後に行を挿入しようとすると、異常終了します。 PBが行数よりも高い数値を使用する方法を忘れていますが、行がない場合はInsertRow(0)に変更します。 Terryが言及しているように、itemstatusが間違っている理由がある場合は、SetItemStatusでそれを操作できますが、ステータスを変更できるテーブルを確認してください。 –