Использование возможностей перевода ODBC

В нижней части функции SQLNativeSql() документации, кажется, указано, что драйверы ODBC выполняют преобразование.

В нем говорится:

The following are examples of what SQLNativeSql might return for the following input SQL string containing the scalar function CONVERT. Assume that the column empid is of type INTEGER in the data source:
SELECT { fn CONVERT (empid, SQL_SMALLINT) } FROM employee
A driver for Microsoft SQL Server might return the following translated SQL string:
SELECT convert (smallint, empid) FROM employee
A driver for ORACLE Server might return the following translated SQL string:
SELECT to_number (empid) FROM employee
A driver for Ingres might return the following translated SQL string:
SELECT int2 (empid) FROM employee

Это правда? Может ли ODBC действительно преобразовывать SQL-запросы так, чтобы в идеале ваше приложение могло работать в любой системе баз данных, отправляя запросы через ODBC?

На практике это действительно работает?

Где можно найти список «Синтаксис ODBC SQL»?


person bobobobo    schedule 17.07.2009    source источник


Ответы (1)


Перевод зависит от самого драйвера. Во многих случаях он вернет точную инструкцию SQL, которую вы ему дадите. Итак, никакой ODBC не дает волшебной палочки. Вам все равно придется беспокоиться о базе данных, к которой вы выполняете запросы. При использовании нескольких механизмов баз данных приложение должно адаптировать запросы к каждому из них (или использовать общий SQL, который работает на всех из них).

person Mark Wilkins    schedule 29.12.2009