Поделиться через


Преобразования типов данных

Данные можно преобразовать из одного типа в другой в один из четырех раз: когда данные передаются из одной переменной приложения в другую (C в C), когда данные в переменной приложения отправляются в параметр инструкции (C в SQL), когда данные в столбце результирующих наборов возвращаются в переменной приложения (SQL to C), и при передаче данных из одного столбца источника данных в другой (SQL в SQL).

Любое преобразование, возникающее при передаче данных из одной переменной приложения в другую, выходит за пределы область этого документа.

Когда приложение привязывает переменную к столбцу или параметру результирующих наборов, приложение неявно указывает преобразование типа данных в выборе типа данных переменной приложения. Например, предположим, что столбец содержит целые данные. Если приложение привязывает целочисленную переменную к столбцу, оно указывает, что преобразование не выполняется; Если приложение привязывает символьную переменную к столбцу, указывает, что данные преобразуются из целого числа в символ.

ODBC определяет способ преобразования данных между каждым типом данных SQL и C. В основном ODBC поддерживает все разумные преобразования, такие как символ в целочисленное и целое число для с плавающей запятой, и не поддерживает неправильно определенные преобразования, такие как float до даты. Драйверы необходимы для поддержки всех преобразований для каждого типа данных SQL, который они поддерживают. Полный список преобразований между типами данных SQL и C см. в разделе "Преобразование данных из SQL в типы данных C" и преобразование данных из C в типы данных SQL в приложении D: Типы данных.

ODBC также определяет скалярную функцию для преобразования данных из одного типа данных SQL в другой. Скалярная функция CONVERT сопоставляется драйвером с базовой скалярной функцией или функциями, определенными для преобразования в источнике данных. Так как эта функция сопоставляется с функциями СУБД, ODBC не определяет, как работают эти преобразования или какие преобразования должны поддерживаться. Приложение обнаруживает, какие преобразования поддерживаются определенным драйвером и источником данных с помощью параметров SQL_CONVERT в SQLGetInfo. Дополнительные сведения о скалярной функции CONVERT см. в escape-последовательностях в ODBC и функции явного преобразования типов данных.