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

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

Too many open tables [D7, Paradox]


gonzales ©   (2004-09-17 10:56:00) 

Добрый день, уважаемые Гуру!
Проблема следующая. Имеется DBGrid, в котором отображается одна колонка таблицы. Задача - ракскрасить те строки, у которых поле колонки №2 принимает определенное значение. Использую стандартный метод OnDrawCollumn (или как-то так). Не придумал ничего более умного, как написать запрос для вычисления значения поля колонки №2. но неожиданно столкнулся с такой трудностью: при каждой перерисовке выполняется запрос на все видимые поля Грида, соответственно после немногих полных перерисовок выдает ошибку - too many open tables. Подскажите, как этого избежать?
Спасибо


Sergey13   (2004-09-17 12:04:00) [1]

2[13] gonzales   (17.09.04 11:59)
>а в запросе выбирать все поля, отображаться все равно будет только одно
Зачем все? Только то что надо.


gonzales   (2004-09-17 11:59:00) [2]

:))) ну да
просто я наверное по ламерски сделал, надо в Гриде добавить одну колонку, присвоить ей поле датасета, а в запросе выбирать все поля, отображаться все равно будет только одно


Роман Снегирев   (2004-09-17 11:53:00) [3]

DataSource1.DataSet.Fields.FieldByName('Selection').AsBoolean-Fields лишнее
DataSource1.DataSet.FieldByName('Selection').AsBoolean
так надо его туда добавить


Johnmen   (2004-09-17 11:53:00) [4]

Выбери два...:)


gonzales   (2004-09-17 11:42:00) [5]

DataSource1.DataSet.Fields.FieldByName('Selection').AsBoolean
не канает - ссылается на то, что в Query1 нет поля Selection
а там его и быть не может, потому как выбирается только одно поле


gonzales   (2004-09-17 11:26:00) [6]

:(


Erik1   (2004-09-17 11:25:00) [7]

Приехали и как ты до такой жизни докатился? Немедленно смотреть Demo и читать хелп.


gonzales   (2004-09-17 11:22:00) [8]

а как достучаться до значения поля Датасета без запроса?


Роман Снегирев   (2004-09-17 11:20:00) [9]

Но, уважаемые, на Гриде нет второго поля - оно не отображается - в этом проблема
Да причем здесь Грид, ты же будещь проверять значение поляДатасета, а не колонкиГрида


gonzales   (2004-09-17 11:18:00) [10]

2 Наталия - вторая колонка имеется в таблице но не отображается на Гриде


gonzales   (2004-09-17 11:17:00) [11]

Но, уважаемые, на Гриде нет второго поля - оно не отображается - в этом проблема


Роман Снегирев   (2004-09-17 11:10:00) [12]

Согласен с Johnmen. Надо делать примерно так
на OnDrawColumnCell

with (Sender as TDBGrid).Canvas do
   begin
   если значение поля №2=чтонадо then Brush.Color:= clAqua;
   end;
(Sender as TDBGrid).DefaultDrawColumnCell(Rect, DataCol, Column, State);


Johnmen   (2004-09-17 11:04:00) [13]

Не выполнять никаких запросов при отрисовке грида !


Наталия   (2004-09-17 11:02:00) [14]

1) Если "отображается одна колонка", то откуда взялась "колонка №2"?
2) Если значение поля уже отображается в этой колонке, зачем тогда нужен запрос?


Наверх

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