Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: CL | DM;

Вниз

Too many open tables   Найти похожие ветки 

 
gonzales   (2004-09-17 10:56) [0]

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


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

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


 
Johnmen ©   (2004-09-17 11:04) [2]

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


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

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

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


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

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


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

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


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

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


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

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


 
Erik1 ©   (2004-09-17 11:25) [8]

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


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

:(


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

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


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

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


 
Johnmen ©   (2004-09-17 11:53) [12]

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


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

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


 
Sergey13 ©   (2004-09-17 12:04) [14]

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



Страницы: 1 вся ветка

Текущий архив: 2004.10.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.049 c
1-1097043897
Solden
2004-10-06 10:24
2004.10.17
Как активизировать приложение?


3-1095675680
serg_newone
2004-09-20 14:21
2004.10.17
Блокирование логина после троекратного неправильного ввода парол


3-1095669825
ADObeginner
2004-09-20 12:43
2004.10.17
Ошибка "недостаточно сведений из основной таблицы для обновления"


14-1096202526
Comp
2004-09-26 16:42
2004.10.17
Как настроить интернет через прокси-сервер?


14-1096269662
Layner
2004-09-27 11:21
2004.10.17
Американская винда не правильно определяет кол-во