ODBC is not a database - ODBC stands for Open Database Connectivity and is a standard interface for accessing databases. Most database engines have their own ODBC driver to allow for standardized access to their database.
It is generally independent from database systems and operating systems, so in theory an application running on one database and accessing it via ODBC should be able to run on another ODBC-enabled database with no changes. Of course, that's rarely the case, but ODBC does significantly simplify work with different database systems.
Standardized access, of course, brings its downsides. Each database has its own strength and deviates from standard (more or less) to take advantage of its unique strengths. Using ODBC generally means using lowest-common denominator in features. If you use a costly database system, you generally want to use it to its fullest. Using ODBC means crippling performance, as ODBC driver has to translate all database calls and results between native database structures and standard ODBC ones.
All our products fully support ODBC. However, for all cases where we support your database directly (natively), use our direct database engine instead of ODBC. We work very hard to support all the peculiarities of each database and give you best possible performance and stability. ODBC layer is always one more layer where things can go wrong and not all ODBC drivers are of highest quality.