Совместимость типов данных
Переменные основного языка могут иметь тип, не совпадающий с типом привязываемого параметра предложения встроенного 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 |
Не поддерживается |