Совместимость типов данных
Переменные основного языка могут иметь тип, не совпадающий с типом привязываемого параметра предложения встроенного SQL. В таком случае на этапе выполнения осуществляется преобразование типов (если типы совместимы) от типа основного языка к типу СУБД ЛИНТЕР и наоборот.
Если невозможно выполнить преобразование от типа данных СУБД ЛИНТЕР к типу данных основного языка или наоборот, то на этапе исполнения возникает ошибка ErrPCI_IncTyp.
В таблице 4 приведено соответствие типов переменных встроенного языка, типов переменных основного языка (получаемых после претрансляции) и типов данных СУБД ЛИНТЕР, между которыми не требуется преобразование типов при исполнении.
| Тип данных встроенного языка | Тип данных основного языка | Тип СУБД ЛИНТЕР | Примечание |
|---|---|---|---|
|
short |
short |
SMALLINT |
16 бит |
|
unsigned short |
unsigned short |
SMALLINT |
16 бит |
|
int |
int |
INTEGER |
32 бита. В DOS и PalmOS преобразуется в 16 бит |
|
unsigned int |
unsigned int |
INTEGER |
32 бита. В DOS и PalmOS преобразуется в 16 бит |
|
long |
long |
INTEGER |
32 бита. В 64-битных архитектурах (например, Alpha, Sparc v9) преобразуется в 64 бита |
|
unsigned long |
unsigned long |
INTEGER |
32 бита. В 64-битных архитектурах (например, Alpha, Sparc v9) преобразуется в 64 бита |
|
float |
float |
REAL |
4 байта |
|
double |
double |
DOUBLE |
8 байт |
|
decimal |
decimal (p,s) |
dec (decimal) |
Десятичное с фиксированной точкой (30,10) |
|
char |
char |
CHAR | |
|
char[1] |
char[1] |
CHAR | |
|
char[n] |
char[n] |
CHAR(n) | |
|
char* |
char* |
CHAR() |
Заканчивается двоичным нулем |
|
varchar[n] |
VARCHAR_PCI(n) |
VARCHAR(n) |
Символьная строка переменной длины с 2-байтным полем длины |
|
bit |
unsigned char |
BYTE | |
|
bit[1] |
unsigned char [1] |
BYTE | |
|
bit[n] |
unsigned char [n] |
BYTE(n) | |
|
bit* |
unsigned char* |
BYTE() |
Заканчивается двоичным нулем |
|
varbit[n] |
VARBIT_PCI(n) |
VARBYTE(n) |
Байтовая строка переменной длины с 2-байтным полем длины |
|
date |
timestamp[2] |
DATE | |
|
bool |
unsigned char |
BOOLEAN |
unsigned char |
|
BLOB |
В привязанную переменную char[24] возвращается заголовок BLOB | ||
|
EXTFILE |
Не поддерживается |