![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
определение длины поля запроса [D6]
smok_er © (2002-11-27 12:28:00)Уважаемые!
Есть ли возможность определить сабж?
Дело в том, что хочу выводить результат запроса в мемо с указанием заголовков. Но происходит большое смещение, причем угадывать его постоянно для разных запросов невозможно.
smok_er (2002-11-29 12:59:00) [1]>Как только люди не извращаются. 8-)
Да уж, хотя идея не моя, но очень мне понравилась :)
Попробую с системными таблицами поработать, если не получится, то использую вариант "ЮЮ"
Огромное вам всем спасибо за ответы!
ЮЮ (2002-11-29 03:17:00) [2]>К примеру запустил на выполнение запросов 50 и ушел. После этого открываешь файло в экселе и все классно видно, а главное - в одном файле.
Тогда разделяй поля символом Tab (#9), а не выравниванием
Sergey13 (2002-11-28 10:26:00) [3]2smok_er (28.11.02 10:06)
Как только люди не извращаются. 8-)
Для Оракла те системные таблицы user_tables и user_tab_columns.
smok_er (2002-11-28 10:06:00) [4]Да дело в том, что мемо удобнее тем, что в него можно закинуть результат выполнения сразу нескольких запросов.
К примеру запустил на выполнение запросов 50 и ушел. После этого открываешь файло в экселе и все классно видно, а главное - в одном файле.
ЮЮ (2002-11-28 03:14:00) [5]>Дело в том, что хочу выводить результат запроса в мемо с указанием заголовков. Но происходит большое смещение, причем угадывать его постоянно для разных запросов невозможно.
Если уж не нравится DBGrid, то используй хотя бы StringGrid, зачем с Мемо-то изврашаться?
smok_er (2002-11-27 20:08:00) [6]Не, для текстовых полей выдает, а для Number, datetime и может быть чего еще (не проверял) выдает ноль :(
smok_er (2002-11-27 19:40:00) [7]Огромнейшее спасибо за совет!
passm (2002-11-27 18:12:00) [8]smok_er (27.11.02 17:37)> ИМХО, DBGrid ориентируется на TField.Size.
А что касается, SYSCAT.COLUMNS, то да, в твоем случае действительно не подойдет. Но, все же, объясню, что имел ввиду:
В СУБД имеются системные таблицы/просмотры, откуда можно почерпнуть достаточно много информации о БД. В частности, о столбцах всех таблиц и просмотров все можно узнать сделав запрос к просмотру SYSCAT.COLUMNS. Напрмер:
SELECT C.COLNAME, C.LENGTH, C.DEFAULT (и многое др.)
FROM SYSCAT.COLUMNS C
WHERE C.TABSCHEMA = "DB2ADMIN"
AND C.TABNAME = "AFFILIATE"
Получаем информацию о столбцах конкретной таблицы/просмотра.
Но в твоем случае это не подойдет, т. к. необходима информация о столбцах запроса и в общем случае из БД этого не почерпнешь.
Извини, если ввел в заблуждение.
Я бы ориентировался на TField.Size.
smok_er (2002-11-27 17:37:00) [9]А подробнее не можете объяснить?
Вы скорее всего не так поняли.
Я имею ввиду длину каждого поля. Т.е. к примеру, DBGrid при добавлении поля сам опреляет его длину. Мне нужно тоже самое.
passm (2002-11-27 14:25:00) [10]smok_er (27.11.02 13:55)> Работаю с DB2 но, думаю, что подобное есть и в Oracle.
Есть системный VIEW SYSCAT.COLUMNS. И там поле AVGCOLLEN. Попробуй поискать.
smok_er (2002-11-27 13:55:00) [11]Хм... странно.
Я поставил checkbox на Oracle. Видать что-то проглючило :(
passm (2002-11-27 13:42:00) [12]smok_er (27.11.02 12:28)> Вероятность ответа на вопрос будет выше, если указать СУБД.