static void addTypeRow()

in src/odbc/rsodbc/rscatalog.cpp [2991:3119]


static void addTypeRow(char *szCatalogQuery, RS_TYPE_INFO *pTypeInfo)
{
	int len;

	len = strlen(szCatalogQuery);
    snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS TYPE_NAME, ", pTypeInfo->szTypeName);
	len = strlen(szCatalogQuery);
    snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS DATA_TYPE, ", pTypeInfo->hType);
	len = strlen(szCatalogQuery);
    snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS COLUMN_SIZE, ", pTypeInfo->iColumnSize);

	len = strlen(szCatalogQuery);
    if(pTypeInfo->szLiteralPrefix[0] != '\0') {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS LITERAL_PREFIX, ", pTypeInfo->szLiteralPrefix);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS LITERAL_PREFIX, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->szLiteralSuffix[0] != '\0') {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS LITERAL_SUFFIX, ", pTypeInfo->szLiteralSuffix);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS LITERAL_SUFFIX, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->szCreateParams[0] != '\0') {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS CREATE_PARAMS, ", pTypeInfo->szCreateParams);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS CREATE_PARAMS, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->hNullable != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS NULLABLE, ", pTypeInfo->hNullable);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS NULLABLE, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->iCaseSensitive != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS CASE_SENSITIVE, ", pTypeInfo->iCaseSensitive);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS CASE_SENSITIVE, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->iSearchable != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS SEARCHABLE, ", pTypeInfo->iSearchable);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS SEARCHABLE, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->iUnsigned != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS UNSIGNED_ATTRIBUTE, ", pTypeInfo->iUnsigned);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS UNSIGNED_ATTRIBUTE, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->iFixedPrecScale != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS FIXED_PREC_SCALE, ", pTypeInfo->iFixedPrecScale);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS FIXED_PREC_SCALE, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->iAutoInc != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS AUTO_UNIQUE, ", pTypeInfo->iAutoInc);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS AUTO_UNIQUE, ");
	}

	len = strlen(szCatalogQuery);
    snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " '%s' AS LOCAL_TYPE_NAME, ", pTypeInfo->szLocalTypeName);

	len = strlen(szCatalogQuery);
    if(pTypeInfo->hMinScale != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS MINIMUM_SCALE, ", pTypeInfo->hMinScale);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS MINIMUM_SCALE, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->hMaxScale != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS MAXIMUM_SCALE, ", pTypeInfo->hMaxScale);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS MAXIMUM_SCALE, ");
	}

	len = strlen(szCatalogQuery);
    snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS SQL_DATA_TYPE, ", pTypeInfo->hSqlDataType);

	len = strlen(szCatalogQuery);
    if(pTypeInfo->hSqlDateTimeSub != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %hd AS SQL_DATETIME_SUB, ", pTypeInfo->hSqlDateTimeSub);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS SQL_DATETIME_SUB, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->iNumPrexRadix != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS NUM_PREC_RADIX, ", pTypeInfo->iNumPrexRadix);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS NUM_PREC_RADIX, ");
	}

	len = strlen(szCatalogQuery);
    if(pTypeInfo->iIntervalPrecision != SQL_NULL_DATA) {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " %d AS INTERVAL_PRECISION ", pTypeInfo->iIntervalPrecision);
	}
    else {
        snprintf(szCatalogQuery + len, MAX_CATALOG_QUERY_LEN - len, " NULL AS INTERVAL_PRECISION ");
	}
}