Главная ]
4.Работа с преобразованиями типов
Программирование
Базы данных



InterBase использует свой формат для внутреннего хранения данных типов TIMESTAMP, TIME, и  DATE, но предоставляет следующие вызовы API ф-й для трансляции в эти форматы и обратно:

  • isc_decode_sql_date() конвертирует внутренний формат даты IB  к формату С структуры date

  • isc_encode_sql_date() делает тоже, но обратно

  • isc_decode_sql_time() конвертирует внутренний формат времени IB к формату С структуры time

  • isc_encode_sql_time() делает тоже, но обратно

  • isc_decode_timestamp() конвертирует внутренний формат timestamp IB к формату С структуры timestamp; Это прежде выполнялось вызовом isc_decode_date ();

  • isc_encode_timestamp() делает тоже, но обратно; Это прежде выполнялось вызовом isc_encode_date ();

Эти вызовы просто транслируют данные типа datetime (DATE, TIME, и TIMESTAMP)  в другие форматы; они не делают непосредственно чтения или записи данных типа datetime . Данные типа datetime  читаются и пишутся в базу данных, при использовании стандартного   синтаксиса DSQL, обрабатываемого с помощью семейства вызовов API  isc_dsql.

Примечание

В InterBase 6тип данных DATE содержит только информацию о дате в диалекте 3 и не доступен вдиалекте 1, чтобы избежать неоднозначности. Когда старая база данных переносится к версии 6 диалект 1, все столбцы, которые предварительно имели тип данных DATE,  автоматически преобразовываются в TIMESTAMP.Чтобы хранить перенесенные данные в столбце DATE в диалекте 3, Вы должны создать новый столбец в диалекте 3, который имеет тип данных DATE, изатем переместить данные в него. InterBase не позволяет Вам использовать ALTERCOLUMN, чтобы изменить тип данных TIMESTAMP в тип данных DATE из-за возможной потери данных.

InterBaseтакже требует, чтобы числа, введенные в базу данных и  буфера параметров транзакций были в универсальном формате, с самым последним знаковым байтом. Знаковые числа требуют, чтобы  знак был в последнем байте. Системы, которые представляют числа со старшим байтом последним, должны использовать isc_vax_integer (),чтобы полностью изменить порядок байт чисел, введенных в буфер параметров баз данных (DPBs) и  буфера параметров транзакций (TPBs).

 

<< Назад ] Содержание ] Далее >> ]

 

Дизайн: Piton Alien
Rambler's Top100 Рейтинг@Mail.ru
Сайт создан в системе uCoz