Требуется получить метаданные из таблицы - список полей и их типы. Список можно получить из rdb$relation_fields, а типы из rdb$fields. Следовательно нужен двухтабличный запрос. Попробовал вот так:
$query = "SELECT * FROM (SELECT RDB\$FIELD_TYPE AS FIELD_TYPE FROM RDB\$FIELDS WHERE RDB\$SYSTEM_FLAG = 0 UNION ALL SELECT RDB\$FIELD_NAME as FIELD_NAME FROM RDB\$RELATION_FIELDS WHERE RDB\$RELATION_NAME = 'TABLE')";
$res = ibase_query($dbh, $query);
while ($row_table_names = ibase_fetch_object($res))
{
print($row_table_names->FIELD_NAME.' - '.$row_table_names->FIELD_TYPE);
}
Выводит - 37 - 37 - 37 - NAME - AGE - FULL_NAME
Если попробовать:
var_dump($row_table_names);
Выводит object(stdClass)#1 (1) { ["FIELD_TYPE"]=> string(2) "37" } object(stdClass)#2 (1) { ["FIELD_TYPE"]=> string(2) "37" } object(stdClass)#1 (1) { ["FIELD_TYPE"]=> string(2) "37" } object(stdClass)#2 (1) { ["FIELD_TYPE"]=> string(31) "NAME " } object(stdClass)#1 (1) { ["FIELD_TYPE"]=> string(31) "AGE " } object(stdClass)#2 (1) { ["FIELD_TYPE"]=> string(31) "FULL_NAME " }
Т.е. данные из двух RDB обрабатываются как один массив. Мне же надо, грубо говоря, получить следующее: поле - тип, поле - тип... (Отредактировано автором: 26 Июля, 2011 - 08:16:27)
|