Суть вопроса: есть таблица X$FIELDS (Таблица полей). В этой таблице есть поле - XE$DATATYPE (код типа - например, для типа "String" в этом поле соответствующий код равен 12-ти).
Так вот: есть какая-нибудь функция или таблица, из которой можно получить соответствие:
код типа <-> имя типа
то есть что-то вроде функции GetTypeName(word): string;
которая вернула бы результат:
GetTypeName(12) = "String"
а?
Как узнать имя типа поля?
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 474
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Сибирь-матушка
- Контактная информация:
Re: Как узнать имя типа поля?
Пособие по SQL в Support'е, приложение ...
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
-
- Новичок
- Сообщения: 21
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Украина. Киев.
- Контактная информация:
Re: Как узнать имя типа поля?
Когда-то написал такой скрипт, чтобы формировать список полей в таблице:
! создание описания структуры таблицы
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 ));
! создание описания структуры таблицы
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 ));