FIX: RecomputeRepos: Won't Work with Database Created by UML.DLL

ID: Q169331

The information in this article applies to:

SYMPTOMS

RecomputeRepository returns an error if it is run against a database created by the UML.DLL.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This has been fixed with in Visual Studio Service Pack 1.

For additional information about the Visual Studio 97 Service Pack 1, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q170365
   TITLE     : INFO: Visual Studio 97 Service Packs - What, Where, and Why

MORE INFORMATION

The engine has changed get_item for collections starting in Visual Studio Service Pack 1 so that items can only be retrieved using OBJID's, names and indexes. Previously the Repository allowed initids to be used. ReComputeRepository previously depended on this functionality. Now, the ReComputeRepository function uses OBJID's to get items.

Steps to Reproduce Problem

1. Start a new Standard EXE project. Add MODULE1.BAS.

2. Type the following code into MODULE1.BAS:

      Declare Function ReComputeRepository Lib "RepUtil" (ByVal szPath _
      As String,  ByVal szUser As String, ByVal szPwd As String) As Long

      Sub Main()

         'change the following path to the windows location for
         'your machine

         Dim lngRet As Long
         sPath = "c:\WINDOWS\msapps\repository.mdb"
         lngRet = RecomputeRepository(sPath,"","")
         MsgBox "The return value is (" & lngRet & ")!"

      End Sub

2. Run the code.

Results:

Expected:
Keywords          : kbVBp500 kbVS97sp1fix kbVS97sp2fix kbvbp500sp1fix kbvbp500sp2fix 
Version           : 5.0 97
Solution Type     : kbfix

Last Reviewed: December 20, 1997