Оглавление | Назад | Вперёд | Индекс

Глава 11
Конвертация Типов Данных

В этой главе рассматривается, как машина выполнения JavaScript на сервере конвертирует более сложные типы данных, используемые в реляционных БД, и простые типы.

В главе имеются следующие разделы:

О Конвертации Типов Данных


В БД имеется богатый набор типов данных. Машина выполнения JavaScript на сервере конвертирует эти типы данных в значения JavaScript, строки или числа. Число в JavaScript хранится как значение двойной точности с плавающей точкой. Вообще машина выполнения конвертирует символьные типы данных в строки, числовые типы данных - в числа, а даты - в Date -объекты JavaScript. Она также конвертирует null-значения в JavaScript null.

Примечание

Поскольку JavaScript не поддерживает фиксированные или упакованные десятеричные числа, возможна некоторая потеря точности при чтении и записи типов упакованных десятеричных данных. Проверьте результаты до вставки их обратно в БД и используйте соответствующие математические функции для коррекции потери точности.

Работа с Датами и Базами Данных


Значения даты, запрошенные из базы данных, конвертируются в Date -объекты JavaScript. Чтобы вставить значение даты в БД, используйте Date -объект JavaScript так:

cursorName.dateColumn = dateObj

Здесь cursorName это курсор, dateColumn это столбец, соответствующий дате, а dateObj это Date -объект JavaScript. Вы создаёте Date -объект, используя оператор new и Date -конструктор:

dateObj = new Date(dateString)

где dateString это строка, представляющая дату. Если dateString - пустая строка, создаётся Date -объект для текущей даты. Например:

custs.orderDate = new Date("Jan 27, 1997")
Примечание:

Базы Данных DB2 имеют типы данных time и timestamp. Эти типы конвертируются в тип Date в JavaScript.


ПРЕДУПРЕЖДЕНИЕ!
LiveWire Database Service не может обрабатывать даты после 5 февраля 2037 года. Дополнительно о работе с датами в JavaScript см. "Объект Date."

Конвертация Типов Данных Базой Данных


В следующей таблице показана конвертация, выполняемая машиной выполнения JavaScript для баз данных DB2.

Таблица 11.1  Конвертация Типов Данных DB2
Тип Данных DB2 Тип Данных JavaScript

char(n), varchar(n), long varchar, clob(n)

string

integer, smallint

integer

decimal, double

double

date, time, timestamp

Date

blob

Blob

В следующей таблице дана конвертация БД Informix.

Таблица 11.2  Конвертация Типов Данных Informix
Тип Данных Informix Тип Данных JavaScript

char, nchar, text, varchar, nvarchar

string

decimal(p,s), double precision, float, integer, money(p,s), serial, smallfloat, smallint

number

date, datetime 1

Date

byte

Blob

interval

Не поддерживается

1

Тип даты Informix datetime имеет точность переменных, определяемых пользователем. Серверный JavaScript выводит данные datetime в формате от YEAR до SECOND. Если datetime -переменная была определена с другой точностью, такой как от MONTH до DAY, она может быть отображена некорректно. В данном случае дата не нарушится некорректным отображением.

ODBC транслирует типы данных продавца в типы данных ODBC. Например, в Microsoft SQL Server тип данных varchar конвертируется в ODBC-тип SQL_VARCHAR. Дополнительно см. документацию ODBC SDK.
В следующей таблице показана конвертация, выполняемая машиной JavaScript для баз данных ODBC.

Таблица 11.3  Конвертация Типов Данных ODBC
Тип Данных ODBC Тип Данных JavaScript

SQL_LONGVARCHAR, SQL_VARCHAR, SQL_CHAR

string

SQL_SMALLINT, SQL_INTEGER, SQL_DOUBLE, SQL_FLOAT, SQL_REAL, SQL_BIGINT, SQL_NUMERIC, SQL_DECIMAL

number

SQL_DATE, SQL_TIME, SQL_TIMESTAMP

Date

SQL_BINARY, SQL_VARBINARY, SQL_LONGBINARY

Blob

В следующей таблице показана конвертация, выполняемая машиной выполнения JavaScript для баз данных Oracle.

Таблица 11.4  Конвертация Типов Данных Oracle

Тип Данных Oracle Тип Данных JavaScript

long, char(n), varchar2(n), rowid

string

number(p,s), number(p,0), float(p)

number

date

Date

raw(n), long raw

Blob

В следующей таблице показана конвертация, выполняемая машиной выполнения JavaScript для баз данных Sybase.

Таблица 11.5  Конвертация Типов Данных Sybase

Тип Данных Sybase Тип Данных JavaScript

char(n), varchar(n), nchar(n), nvarchar(n), text

string

bit, tinyint, smallint, int, float(p), double precision, real, decimal(p,s), numeric(p,s), money, smallmoney

number 1

datetime, smalldatetime

Date

binary(n), varbinary(n), image

Blob

1

Sybase-клиент ограничивает числовые типы данных 33 цифрами. Если Вы вставляете число JavaScript с большим количеством цифр в БД Sybase, Вы можете получить ошибку.

Оглавление | Назад | Вперёд | Индекс

Дата последнего обновления: 29 сентября 1999 г.

© Copyright ╘ 1999 Sun Microsystems, Inc. Некоторая часть Copyright ╘ 1999 Netscape Communications Corp. Все Права Зарезервированы.