Страница 1 из 1
					
				Как узнать имя типа поля?
				Добавлено: 23 мар 2004, 13:01
				 __nogc
				Суть вопроса: есть таблица X$FIELDS (Таблица полей). В этой таблице есть поле - XE$DATATYPE (код типа - например, для типа "String" в этом поле соответствующий код равен 12-ти). 
Так вот: есть какая-нибудь функция или таблица, из которой можно получить соответствие:
код типа <-> имя типа
то есть что-то вроде функции GetTypeName(word): string;
которая вернула бы результат:
GetTypeName(12) = "String"
а?
			 
			
					
				Re: Как узнать имя типа поля?
				Добавлено: 23 мар 2004, 14:23
				 Goblin
				Пособие по SQL в Support'е, приложение ...
			 
			
					
				Re: Как узнать имя типа поля?
				Добавлено: 25 мар 2004, 12:29
				 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  ));