BUG: dbrpcparam SQLCHAR and Sending Null for Datetime Variable

ID: Q102820


The information in this article applies to:

BUG# 9081 (4.2)

SYMPTOMS

In DB-Library function dbrcpparam(), using SQLCHAR type and attempting to send a null value by setting datalen to 0 does not work if the remote stored procedure parameter has variable type as DATETIME.

For example, let the stored procedure be:


   create proc test @var datetime as select @var 

Then calling dbrpcparam with the following parameters, intending to send a null value by setting maxlen=0, as:

   dbrpcparam(dbproc,"@var",0,SQLCHAR,-1,0,"xyz") 

displays the default date of 1 Jan, 1900, thereby treating the variable as an empty string instead of a null.


WORKAROUND

Use SQLDATETIME as the type instead of SQLCHAR to work around this problem.


STATUS

Microsoft has confirmed this to be a problem in DB-Library version 4.2. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

Additional query words: dblib


Keywords          : kbprg SSrvDB_Lib SSrvProg kbbug4.20 
Version           : 4.2 | 4.2 | 4.2
Platform          : MS-DOS OS/2 WINDOWS 
Issue type        : 

Last Reviewed: March 17, 1999