Глава 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, datetime1 |
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
|
number1
|
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. Все Права Зарезервированы.
|