BUG: DAOENROL - Can't See Added Records in Windows 95

Last reviewed: July 24, 1997
Article ID: Q145719
The information in this article applies to:
  • The Microsoft Foundation Classes (MFC) included with: - Microsoft Visual C++, 32-bit Edition, versions 4.0, 4.1, 4.2

SYMPTOMS

If you run the DAOENROL sample from Visual C++ version 4.0, 4.1, or 4.2 under Windows 95 and you add a record, you may not see the record in the result set. If you exit the program, restart it and scroll through the records. You will then see the added record. The "More Information" section below gives a more detailed scenario that shows the problem.

CAUSE

The CDaoRecordView class keeps track of the first and last record by using Microsoft Jet bookmarks. Microsoft Jet bookmarks should not be assumed to be valid following a Requery(). DAOENROL does a Requery() following an add and a move, but it continues to use the bookmark values it obtained before the Requery() was done.

RESOLUTION

To fix the DAOENROL sample, you must re-initialize the CDaoRecordView bookmark members following a Requery(). DAOENROL performs a Requery() in three places:

  • in the CAddForm::OnMove() function in Addform.cpp.
  • in the CSectionForm::OnSelendokCourselist() function in Sectform.cpp.
  • in the CSectionForm::OnMove() function in SectForm.cpp.

In each of these locations, you should add code similar to this:

   m_pSet->Requery();           // here's the existing Requery()

   m_varBookmarkCurrent = 1L;   // add these...
   m_varBookmarkFirst =         // ...lines of...
      m_varBookmarkLast = 0L;   // ..code!

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

Steps to Reproduce Problem

  1. Run the DAOENROL sample on Windows 95.

  2. Click the Next button to move to the last record.

  3. Click the Plus button to add a record.

  4. Type a 3 in all blank fields of the new record.

  5. Click the Previous button to move off the new record.

  6. Click the Next button to scroll through the result set. You will not see the record you just added.

NOTE: If you run DAOENROL under Windows NT, you will see the added record. Although the problem is masked in Windows NT, the behavior of bookmarks after a Requery() is undefined and may change in future releases of either operating system. Any behavior exhibited should not be relied on.

REFERENCES

For more information, please see the following article in the Microsoft Knowledge Base:

ARTICLE-ID: Q145686

TITLE     : PRB: CDaoRecordView Bookmark Members Invalid After Requery()
 

	
	


Keywords : kbother MfcDAO vcbuglist400
Technology : kbMfc
Version : 4.0 4.1 4.2
Platform : NT WINDOWS
Issue type : kbbug


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 24, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.