Как узнать имя типа поля?

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
__nogc
Посетитель
Сообщения: 35
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Как узнать имя типа поля?

Сообщение __nogc »

Суть вопроса: есть таблица X$FIELDS (Таблица полей). В этой таблице есть поле - XE$DATATYPE (код типа - например, для типа "String" в этом поле соответствующий код равен 12-ти).
Так вот: есть какая-нибудь функция или таблица, из которой можно получить соответствие:
код типа <-> имя типа
то есть что-то вроде функции GetTypeName(word): string;
которая вернула бы результат:
GetTypeName(12) = "String"

а?
Goblin
Местный житель
Сообщения: 474
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь-матушка
Контактная информация:

Re: Как узнать имя типа поля?

Сообщение Goblin »

Пособие по SQL в Support'е, приложение ...
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
wildman
Новичок
Сообщения: 21
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Украина. Киев.
Контактная информация:

Re: Как узнать имя типа поля?

Сообщение wildman »

Когда-то написал такой скрипт, чтобы формировать список полей в таблице:

! создание описания структуры таблицы
select X$FIELDS.xe$Name,X$FIELDS.xe$title,X$FIELDS.xe$size,
if(X$FIELDS.XE$DATATYPE= 0,'Void ',
if(X$FIELDS.XE$DATATYPE= 1,'Boolean ',
if(X$FIELDS.XE$DATATYPE= 2,'Char ',
if(X$FIELDS.XE$DATATYPE= 3,'Byte ',
if(X$FIELDS.XE$DATATYPE= 4,'Word ',
if(X$FIELDS.XE$DATATYPE= 5,'Integer ',
if(X$FIELDS.XE$DATATYPE= 6,'LongInt ',
if(X$FIELDS.XE$DATATYPE= 7,'Date ',
if(X$FIELDS.XE$DATATYPE= 8,'Time ',
if(X$FIELDS.XE$DATATYPE= 9,'Pointer ',
if(X$FIELDS.XE$DATATYPE=10,'Single ',
if(X$FIELDS.XE$DATATYPE=11,'Double ',
if(X$FIELDS.XE$DATATYPE=12,'String ',
if(X$FIELDS.XE$DATATYPE=13,'ZString ',
if(X$FIELDS.XE$DATATYPE=14,'LVar ',
if(X$FIELDS.XE$DATATYPE=15,'Buffer ',
if(X$FIELDS.XE$DATATYPE=16,'AutoInc ',
if(X$FIELDS.XE$DATATYPE=17,'Comp ',
if(X$FIELDS.XE$DATATYPE=18,'DateTime ',
if(X$FIELDS.XE$DATATYPE=19,'Array ',
if(X$FIELDS.XE$DATATYPE=20,'TabArray ',
if(X$FIELDS.XE$DATATYPE=21,'Record ',
if(X$FIELDS.XE$DATATYPE=22,'Reference',
if(X$FIELDS.XE$DATATYPE=23,'AnyArray ','<-no->'))))))))))))))))))))))))
where (( 'plpor' == x$files.xf$Name and
x$Files.xf$code == X$FIELDS.XE$FILECODE ));
Ответить