DBPIVOT_FUNC dbpivot_lookup_name( const char name[] ) { struct name_t *n = TDS_FIND(name, names, (compare_func) name_equal); return n ? n->func : NULL; }
/** * Set TDS version from given string * @param tdsver tds string version * @param login where to store information * @return as encoded hex value: high nybble major, low nybble minor. */ TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN * login) { static const struct tdsvername_t tds_versions[] = { { "0", 0x000 } , {"auto", 0x000 } , { "4.2", 0x402 } , { "4.2", 0x402 } , { "46", 0x406 } , { "4.6", 0x406 } , { "50", 0x500 } , { "5.0", 0x500 } , { "70", 0x700 } , { "7.0", 0x700 } , { "80", 0x701 } , { "8.0", 0x701 } , { "7.1", 0x701 } , { "7.2", 0x702 } , { "7.3", 0x703 } , { "7.4", 0x704 } }; const struct tdsvername_t *pver; if (!login) { assert(login); return NULL; } if ((pver = (const struct tdsvername_t *) TDS_FIND(tdsver, tds_versions, tds_vernanme_cmp)) == NULL) { tdsdump_log(TDS_DBG_INFO1, "error: no such version: %s\n", tdsver); return NULL; } login->tds_version = pver->version; tdsdump_log(TDS_DBG_INFO1, "Setting tds version to %s (0x%0x).\n", tdsver, pver->version); return &login->tds_version; }