Its valid to have a recordset with existing rowss. Addnew needs to move to newly created row, so existing wont be used.
From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
Its valid to have a recordset with existing rowss. Addnew needs to move to newly created row, so existing wont be used. --- dlls/msado15/recordset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/msado15/recordset.c b/dlls/msado15/recordset.c index 99779f99dfa..d0ee85e0f59 100644 --- a/dlls/msado15/recordset.c +++ b/dlls/msado15/recordset.c @@ -1587,7 +1587,7 @@ static HRESULT WINAPI recordset_AddNew( _Recordset *iface, VARIANT field_list, V if (recordset->state == adStateClosed) return MAKE_ADO_HRESULT( adErrObjectClosed );
if (!resize_recordset( recordset, recordset->count + 1 )) return E_OUTOFMEMORY; - recordset->index++; + recordset->index = recordset->count - 1; recordset->editmode = adEditAdd; return S_OK; }
From: Alistair Leslie-Hughes leslie_alistair@hotmail.com
--- dlls/msado15/recordset.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/msado15/recordset.c b/dlls/msado15/recordset.c index d0ee85e0f59..2b936f5c096 100644 --- a/dlls/msado15/recordset.c +++ b/dlls/msado15/recordset.c @@ -1582,7 +1582,8 @@ static HRESULT WINAPI recordset_AddNew( _Recordset *iface, VARIANT field_list, V struct recordset *recordset = impl_from_Recordset( iface );
TRACE( "%p, %s, %s\n", recordset, debugstr_variant(&field_list), debugstr_variant(&values) ); - FIXME( "ignoring field list and values\n" ); + if (V_VT(&field_list) != VT_ERROR) + FIXME( "ignoring field list and values\n" );
if (recordset->state == adStateClosed) return MAKE_ADO_HRESULT( adErrObjectClosed );