I noticed when calling RefreshCurrentRow on a query with no primary key and some null values that I got an "number of bind variables doesn't match" type error from Oracle. It seemed that it was binding parameters in the where clause that had been changed to " is null" (and so were no longer meant to be bound.) I may have fixed it with the following change.
It appears that the following line:
Code: Select all
RowAccessor.FillStatement(Stmt, FWhereColumns, Metadata);
Code: Select all
RowAccessor.FillStatement(Stmt, FCurrentWhereColumns, Metadata);
-- Update.
The above does fix things initially, however currently this method caches the RefreshResultSet statement and this statement needs to change if there is no primary key and there are any nulls in the current record. Basically if there's no primary key than I think the refresh statement has to be initialized every time.
-Mark