1 short nFieldType参数的问题:
  void GetFieldValue(
   LPCTSTR lpszName,
   CDBVariant& varValue,
   short nFieldType = DEFAULT_FIELD_TYPE 
);中,  这个参数的作用是干什么??
msdn中解释说:The ODBC C data type of the field.意思看不大明白。它可以是哪些类型的数据??
它的默认值为DEFAULT_FIELD_TYPE。此时根据这样一张表进行转换。
这对CDBVarian参数的值有什么影响呢??
2 在使用CDBVariant类型的对象时,是不是用他的数据成员来取得相应的真实类型??这会受 nFieldType 参数怎样的影响??
3 如果我不知道CDBVariant类型的对象中的值是什么样的类型,这时我应该怎样才能判断出具体要转换成的值的类型呢??请指点一下,谢谢!

解决方案 »

  1.   

    The ODBC C data type of the field 就是字段的ODBC C 数据类型使用默认值DEFAULT_FIELD_TYPE 将强制GetFieldValue根据下面的数据类型对比中的SQL确定与之对应的C数据类型,你也可以指定一个数据类型或一个兼容的数据类型C 数据类型                   SQL 数据类型
    SQL_C_BIT                  SQL_BIT
    SQL_C_UTINYINT             SQL_TINYINT
    SQL_C_SSHORT               SQL_SAMLLINT
    SQL_C_SLONG                SQL_INTEGER
    SQL_C_FLOAT                SQL_REAL
    SQL_C_DOUBLE               SQL_FLOAT SQL_DOUBLE
    SQL_C_TIMESTAMP            SQL_DATE  SQL_TIME  SQL_TIMESTAMP
    SQL_C_CHAR                 SQL_NUMERIC SQL_DECIMAL SQL_BIGINT SQL_CHAR
    SQL_C_BINARY               SQL_BINARY SQL_VARBINARY SQL_LONGVARBINARYCDBvariant包含的类型有:(也就是数据成员)
    m_dwType
    m_boolVal
    m_chVal
    m_iVal
    m_lVal
    m_dbVal
    m_fltVal
    m_pdate
    m_pstring
    m_pbinary具体的你可以查MSDN