BUG: dbcursorcolinfo() Returns Invalid Column Types

ID: Q105365


The information in this article applies to:

BUG# 9460 (4.2)

SYMPTOMS

When using dbcursorcolinfo() to determine the column type of a cursored results set, unexpected values are returned for the column type. These values do not correspond with the column types returned by calling dbcolinfo() to determine column type in a non-cursored results set.


CAUSE

The DB-Library function dbcursorcolinfo() returns the column type stored in syscolumns rather than the column types documented for dbcolinfo().


STATUS

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


MORE INFORMATION

The following table shows the column type returned by dbcolinfo() and by dbcursorcolinfo() when the column is NOT NULL or NULL.


Datatype         dbcolinfo()       cursored (NOT NULL)   cursored (NULL)
------------------------------------------------------------------------
binary           SQLBINARY         SQLBINARY             SQLVARBINARY
bit              SQLBIT            SQLBIT                N/A
char             SQLCHAR           SQLCHAR               SQLVARCHAR
datetime         SQLDATETIME       SQLDATETIME           SQLDATETMIN
float            SQLFLT8           SQLFLT8               SQLFLTN
image            SQLIMAGE          SQLIMAGE              SQLIMAGE
int              SQLINT4           SQLINT4               SQLINTN
money            SQLMONEY          SQLMONEY              SQLMONEYN
real             SQLFLT4           SQLFLT4               SQLFLTN
smalldatetime    SQLDATETIM4       SQLDATETIM4           SQLDATETIMN
smallint         SQLINT2           SQLINT2               SQLINTN
smallmoney       SQLMONEY4         SQLMONEY4             SQLMONEYN
text             SQLTEXT           SQLTEXT               SQL TEXT
timestamp        SQLBINARY         SQLVARBINARY          SQLVARBINARY
tinyint          SQLINT1           SQLINT1               SQLINTN
varbinary        SQLBINARY         SQLVARBINARY          SQLVARBINARY
varchar          SQLCHAR           SQLVARCHAR            SQLVARCHAR 

Returned column types such as SQLVARCHAR should be translated to the expected return type of dbcolinfo(). Using these values to identify data types in functions such as dbconvert() can cause errors.

Additional query words: DB-Lib datatype 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