FIX: Input Parameters to the OLE Automation (sp_OA) Stored Procedures Truncate at 4000 Characters (325492)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q325492
BUG #: 356574 (SHILOH_BUGS)

SYMPTOMS

If you try to pass a string that is greater than 4000 characters but less than or equal to 8000 characters in length to the sp_OASetProperty or to the sp_OAMethod OLE Automation extended stored procedure, the input string is silently truncated to 4000 characters before it is passed to the object and no error is returned.

If you try to set a property to a string that is greater than 8000 characters through the sp_OASetProperty OLE Automation extended stored procedure, or if you try to pass an input parameter to the sp_OAMethod OLE Automation extended stored procedure that is longer than 8000 characters, you receive the following error message:
  hr         Source                       Description
  ---------- ---------------------------- --------------------------
  0x8004275C ODSOLE Extended Procedure    Error in srv_paraminfo.
					

RESOLUTION

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

290211 INF: How To Obtain the Latest SQL Server 2000 Service Pack

NOTE: The following hotfix was created before the release of Microsoft SQL Server 2000 Service Pack 3.

The English version of this fix has the file attributes (or later) 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
   -------------------------------------------------------------

   27-Jun-2002   23:31   8.00.0649   62,024 bytes   Odsole70.dll     
				
NOTE: Because of file dependencies, the most recent hotfix or feature that contains the files may also contain additional files.


STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
This problem was first corrected in Microsoft SQL Server 2000 Service Pack 3.

MORE INFORMATION

NOTE: This fix is intended to address only the passing of long input parameters to sp_OASetProperty and to sp_OAMethod. With the fix, you can use sp_OASetProperty to set an object property to a string that is longer than 8000 characters, and you can pass a string that is longer than 8000 characters to sp_OAMethod as an input parameter.

However, the fix does not address retrieving strings longer than 4000 characters as output parameters through the sp_OAGetProperty OLE Automation extended stored or through the sp_OAMethod OLE Automation extended stored procedure. The scenarios that will not work, even with this fix, and the error message that returns in case, are listed in the following table.

You may receive this error message when you try to retrieve a string property that is longer than 8000 characters through sp_OAGetProperty, or you try to retrieve an OUTPUT parameter that is longer than 8000 characters through sp_OAMethod:
  hr         Source                       Description
  ---------- ---------------------------- --------------------------

  0x8004275C ODSOLE Extended Procedure    Error in srv_paraminfo.
					
You may receive this error message when you try to retrieve a string property that is between 4001 characters and 8000 characters (inclusive) in length through sp_OAGetProperty or as a return value from sp_OAMethod:
  hr         Source                       Description
  ---------- ---------------------------- --------------------------
  0x8004271A ODSOLE Extended Procedure    Error in srv_convert.
					
You may receive this error message when you try to retrieve an OUTPUT parameter or return value that is less than 4001 characters to a Transact-SQL parameter of type text through sp_OAGetProperty or sp_OAMethod:
  hr         Source                       Description
  ---------- ---------------------------- --------------------------
  0x8004271C ODSOLE Extended Procedure    Error in srv_paramset.
					
You may receive this error message when you try to retrieve a string longer than 8000 characters as a return value from sp_OAMethod:
  hr         Source                       Description
  ---------- ---------------------------- --------------------------
  0x8004271F ODSOLE Extended Procedure    The source data specified for this string or binary column or parameter is too long.
					

Modification Type:MinorLast Reviewed:9/27/2005
Keywords:kbHotfixServer kbQFE kbSQLServ2000sp3fix kbbug kbfix kbSQLServ2000preSP3fix KB325492