Determining SQL database driver capabilities

x::sql::config_bitmask_t static_cursor_attributes=conn->config_get_static_cursor_attributes1();

bool has_absolute_positioning=capabilities.count("SQL_CA1_ABSOLUTE");
bool has_relative_positioning=capabilities.count("SQL_CA1_RELATIVE");
bool has_bookmarks=capabilities.count("SQL_CA1_BOOKMARK");

bool flag=conn->config_get_data_source_read_only();
std::string database_name=conn->config_get_database_name();

The connection object implements many config_get_name() methods that return SQL server driver's capabilities and properties. Their naming convention corresponds directly to the value of the attribute name parameter of the underlying SQLGetInfo() call. See the ODBC documentation for more information on these capabilities and properties.

An x::sql::config_bitmask_t gets returned for those configuration settings which return a bitmask, or a set of flags. This is a std::set that contains the list of flags enabled for that configuration setting. The std::set is keyed by literal strings whose names are the documented symbols for bitmask values.