Example

The following code fragment sets the ODSUSERTYPE structure for a few common cases:

#define odstype ODSUSERTYPE
//***********************************************************
//  Initialize ODSUSERTYPE    
//***********************************************************
if (col_p-> fNullAllowed)
        odstype.fNullable = TRUE;
else
        odstype.fNullable = FALSE;
odstype.fCaseSensitive = TRUE;
odstype.fUpdateable = SQL_ATTR_READWRITE_UNKNOWN;
odstype.fUnused = 0
odstype.fNew = NEWODBCTYPE;
odstype.cbPrecision = 0;
  
//***********************************************************
//  Switch based on column type    
//***********************************************************
switch (col_p->uiType)
{
        //*******************************************************
        //  fixed-length character    
        //*******************************************************
        case GW_FIXCHAR:
            odstype.cbPrecision = col_p->uiLen;
            odstype.fType = SQL_CHAR;
            break;
  
        //*******************************************************
        //  variable-length character    
        //*******************************************************
        case GW_VARCHAR:
            odstype.cbPrecision = col_p->uiLen;
            odstype.fType = SQL_VARCHAR;
            break;

        //*******************************************************
        //  integer    
        //*******************************************************
        case GW_INT:
            odstype.fCaseSensitive = FALSE;
            odstype.num.cbPrecision = 10;
            odstype.fType = SQL_INTEGER;
            break;

        //*******************************************************
        //  decimal    
        //*******************************************************
        case GW_DECIMAL:
            odstype.fCaseSensitive = FALSE;
            odstype.num.cbPrecision = (BYTE)col_p->uiPrecision;
            odstype.num.ibScale = (BYTE)col_p->uiScale;
            odstype.fType = SQL_DECIMAL;
            break;

        //*******************************************************
        //  float        
        //*******************************************************
        case GW_FLOAT:
            odstype.fCaseSensitive = FALSE;
            odstype.num.cbPrecision = 15;
            odstype.fType = SQL_FLOAT;
            break;