FIX: Null Parameter for DTS Lookup Causes MMC to Exit (236068)



The information in this article applies to:

  • Microsoft SQL Server 7.0

This article was previously published under Q236068
BUG #: 56011 (SQLBUG_70)
BUG #: 55299 (SQLBUG_70)

SYMPTOMS

When a Data Transformation Services (DTS) package contains a lookup as part of the transformation process and a null parameter value is passed to the Execute method of the lookup, the Microsoft Management Console (MMC) exits with an error.

On a Windows NT system, the error is in the following format:
mmc.exe - Application Error
The instruction at "0xXXXXXXXX" referenced memory at 0xXXXXXXXX".
The memory could not be "read".
Where "0xXXXXXXXX", is a memory address.

On a Windows98 system, the error is as follows:
Microsoft Visual C++ Runtime Library
Runtime Error!
Program: C:\WINDOWS\MMC.EXE
R6025
-pure virtual function call
These errors appear twice and then the MMC terminates.

WORKAROUND

This problem can be avoided by adding a check for NULL values prior to executing the lookup function as follows:
IF isnull(DTSSource("ColumnName")) THEN
    DTSDestination("ColumnName") = "SomeValue"
ELSE
    DTSDestination("ColumnName") = DTSLookups("LookupName").Execute(DTSSource("ColumnName").Value)
END IF
				

STATUS

Microsoft has confirmed this to be a problem in SQL Server 7.0. This problem has been corrected in U.S. Service Pack 2 for Microsoft SQL Server 7.0. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

254561 INF: How to Obtain Service Pack 2 for Microsoft SQL Server 7.0 and Microsoft Data Engine (MSDE) 1.0

For more information, contact your primary support provider.

Modification Type:MajorLast Reviewed:3/14/2006
Keywords:kbBug kbfix KB236068