DOCUMENT:Q304716 08-MAY-2002 [vbwin] TITLE :FIX: AV in RepODBC.dll When You Try to Connect to Repository PRODUCT :Microsoft Visual Basic for Windows PROD/VER::6.0 OPER/SYS: KEYWORDS:kbVBp600 kbGrpDSVBDB kbDSupport kbSQLServ2000 ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual Basic Professional Edition for Windows, version 6.0 - Microsoft Visual Basic Enterprise Edition for Windows, version 6.0 - Microsoft SQL Server 2000 (all editions) ------------------------------------------------------------------------------- SYMPTOMS ======== When you try to connect to a Microsoft repository database that does not exist, an access violation may occur. The error message indicates that the instruction at address "0x0340E4AC" attempted to read the memory at address "0x00000000". The specific instruction address may vary depending on the location from which the RepODBC.dll file is loaded. CAUSE ===== When a connection to the repository is requested, a repository object is created to attempt the connection process. This object tracks the status of the connection and any transactions on the connection. If the connection to the repository is not successful, the repository returns a status that indicates that the requested object model does not exist, and the destructor for the repository object is called. The destructor of the repository object checks the status of the connection for any open transactions and aborts those transactions before it exits. Due to a bug during the initialization of the repository object, the database transaction state is not properly initialized to None. If the memory that is allocated to the transaction state variable in the repository object has an initial value of Running (due to previous values in the allocated memory), the destructor attempts to abort the transaction before exiting. Because a connection is never established, the connection pointer is not valid. Thus, the attempt to abort the transaction results in a read of an invalid memory address. RESOLUTION ========== A supported fix is now available from Microsoft, but it is only intended to correct the problem described in this article and should be applied only to systems experiencing this specific problem. To resolve this problem, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information on support costs, please go to the following address on the World Wide Web: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS NOTE: In special cases, charges that are normally incurred for support calls may be canceled, if a Microsoft Support Professional determines that a specific update will resolve your problem. Normal support costs will apply to additional support questions and issues that do not qualify for the specific update in question. The English version of this fix should have the following file attributes or later: Date Time Version Size File name ------------------------------------------------------------- 17 July 2001 14:51 2000.0.1198.0 1,232,969 RepODBC.dll NOTE: Due to file dependencies, the most recent hotfix or feature that contains the above files may also contain additional files. STATUS ====== Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. Additional query words: ====================================================================== Keywords : kbVBp600 kbGrpDSVBDB kbDSupport kbSQLServ2000 Technology : kbVBSearch kbSQLServSearch kbAudDeveloper kbZNotKeyword6 kbSQLServ2000Search kbZNotKeyword2 kbVB600Search kbVB600 kbSQLServ2000 Version : :6.0 Issue type : kbbug Solution Type : kbfix ============================================================================= 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. Copyright Microsoft Corporation 2002.