FIX: Table fields may be created as null when you use the OLE DB Provider for DB2 (DB2OLEDB) in Host Integration Server 2000 against SQL Server (833640)



The information in this article applies to:

  • Microsoft Host Integration Server 2000
  • Microsoft Host Integration Server 2000 SP1

SYMPTOMS

When you use the Microsoft OLE DB Provider for DB2 (DB2OLEDB) in Microsoft Host Integration Server 2000 against Microsoft SQL Server, table fields may be incorrectly created as null.

CAUSE

DB2OLEDB and SQL Server compute the nullability of a table field at different times during query execution, and this behavior can cause conflicts in how fields are represented through a SQL Server linked server to DB2OLEDB. When you use a SQL Server linked server, a query that runs against a remote computer is first prepared to gather metadata, such as the nullability of table fields. SQL Server uses this metadata when it processes the remaining queries. However, DB2OLEDB permits this metadata to change between the time that the remote query is prepared and the time that the remote query is executed. In certain cases, a DB2OLEDB query can report the nullability of a table field as "NULLABLE" at prepare time, but when the query is executed, the nullability can change to "NOT NULLABLE." This behavior causes SQL Server to report an error or to potentially create a table field that has incorrect nullability.

RESOLUTION

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft Host Integration Server 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

328152 How to obtain the latest service pack for Host Integration Server 2000

Hotfix information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Version    Size     File name
   ----------------------------------------------------
   31-Mar-2004  17:43  5.0.0.975  311,568  Crtpkg.dll       
   31-Mar-2004  17:42  5.0.0.975  688,400  Db2oledb.dll     
   31-Mar-2004  17:42  5.0.0.975   53,552  Ddmstr.dll       
   31-Mar-2004  17:42  5.0.0.975   78,096  Mseidb2c.dll     
   31-Mar-2004  17:42  5.0.0.975  889,104  Mseidb2d.dll     
   31-Mar-2004  17:42  5.0.0.975   24,848  Mseidpm.dll      
   31-Mar-2004  17:42  5.0.0.975  266,512  Mseidrda.dll     
   31-Mar-2004  17:42  5.0.0.975  147,728  Mseidt.dll       
   31-Mar-2004  17:43  5.0.0.975   65,808  Crtpkg.exe       
   31-Mar-2004  17:43  5.0.0.975   82,192  Ddmserv.exe      

				
Note Because of file dependencies, the most recent fix that contains these files may also contain additional files.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

This problem was corrected in Microsoft Host Integration Server 2000 Service Pack 2.

MORE INFORMATION

After you apply this hotfix, a new Full Prepare flag that uses only the early descriptor is available. For example, you can use the new flag in the following way:
Property Name: Full Prepare or FullPrepare
Values: True/False
Default Value: False
Data Links: Add to the "Extended Propeties" item: Full Prepare=True
SQL Server Linked Server: Add as part of the "Provider String": Full Prepare=True 
                                              (do not add as an "Extended Properties" item because these items are ignored when they are used with SQL Server).

Modification Type:MajorLast Reviewed:7/14/2005
Keywords:kbHostIntegServ2000preSP2fix kbQFE kbfix kbbug KB833640 kbAudDeveloper