Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

определение длины поля запроса [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)> Вероятность ответа на вопрос будет выше, если указать СУБД.


Наверх

Титульная страница Поиск, карта сайта Написать письмо