From: Piotr Caban piotr@codeweavers.com
--- dlls/msado15/recordset.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/dlls/msado15/recordset.c b/dlls/msado15/recordset.c index 4aa72c039d0..5a2b68a827d 100644 --- a/dlls/msado15/recordset.c +++ b/dlls/msado15/recordset.c @@ -2762,7 +2762,13 @@ static HRESULT WINAPI recordset_get_EditMode( _Recordset *iface, EditModeEnum *m TRACE( "%p, %p\n", iface, mode );
if (recordset->state == adStateClosed) return MAKE_ADO_HRESULT( adErrObjectClosed ); - if (recordset->index < 0) return MAKE_ADO_HRESULT( adErrNoCurrentRecord ); + + if (!recordset->current_row && !recordset->is_eof && !recordset->is_bof) + { + HRESULT hr = cache_get( recordset, TRUE ); + if (FAILED(hr)) return hr; + } + if (!recordset->current_row) return MAKE_ADO_HRESULT( adErrNoCurrentRecord );
*mode = recordset->editmode; return S_OK;