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

Вниз

Grid index out of range   Найти похожие ветки 

 
Анонимщик   (2002-02-05 19:23) [0]

Если изменять DataSource в рантайме с одной таблицы на другую так, что количесвто записей в новой таблице больше, чем в выбранной ранее, а потом попытаться перейти на последнюю запись, то получим сообщение: Grid index out of range. Каким образом избавиться от ошибки?


 
Фэ ©   (2002-02-05 20:01) [1]

Close
Open


 
yaJohn ©   (2002-02-05 20:19) [2]

mojno poprobovat":
DataSet1.DataSource:= nil;
DataSet1.DataSource:=Table2;

Uspeh ne garantiruetsia;


 
Анонимщик   (2002-02-05 20:30) [3]

Close и Open делать не нужно - лишние заботы с переходом потом на нужную запись (источник данных изменяется не так уж и редко - как пользователь захочет). А если сделать nil, а потом Table2 - то, во-первых - это обман, а не мастерство, а, во-вторых, оптимизатор, наверное, этот nil выбросит (точно не знаю). Нужно нормально сделать.


 
yaJohn ©   (2002-02-05 20:43) [4]

Sdelay normal"no.


 
Фэ ©   (2002-02-05 20:52) [5]

Хороший совет.


 
Sergey13 ©   (2002-02-06 11:02) [6]

Если тебе нужно переходить на разные талицы(НД) в одном гриде то
может стоит попробовать дестроить грид и криэйтить заново, прописав нужные свойства. Или, если число разных НД ограничено, можно создать столько же гридов и менять из видимость. Я применял первый вариант, создавал в дизайне пустой грид, но у меня во время жизни грида его структура не менялась, хотя при создании число полей было непределенно(я как бы "клал" НД на бок и строки становились - столбцами и наоборот).


 
Анонимщик   (2002-02-06 11:17) [7]

Нет, у меня ситуация такая, что программа только в рантайме знает, какие таблицы можно будет подвязывать. Они создаются динамически (то есть не они, и объекты класса TTable для доступа к ним). И пользователь может захотеть понавигировать по каждой из них. Для этого использую TTabControl со строками, каждая из которых совпадает с именем одной из таблиц. Пользователь щелкает по соответствующему элементу в этом TTabControl"е, и программа подвязывает сетку к соответствующему источнику. Все, в общем, и работает, но, видимо, сетка не все параметры для себя обновляет. Потому и получается такое сообщение об ошибке. Кстати, если после этого сообщения перейти на первую запись, а потом снова на последнюю, то ошибки уже не будет. Да, забыл сказать, что для перехода на последнюю запись (как и на первую, использовал DBNavigator, может, и он еще вклинивается?). Этот DBGrid просто, видимо, нужно как-то переинициализировать. По идее, это скорее глюк VCL (или недоделка), т.к. сетка должна отвечать за всю навигацию и делать ее правильно.



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

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

Наверх




Память: 0.48 MB
Время: 0.011 c
1-9101
TAN
2002-02-13 12:50
2002.03.04
Edit


1-9227
solo
2002-02-15 14:38
2002.03.04
число пикселей на 10 мм в режиме отображения mm_Lometric


4-9332
Пастор
2002-01-04 17:07
2002.03.04
Как узнать запущенно ли интересующее меня приложение ?


6-9266
Artis
2001-12-12 18:46
2002.03.04
Возник такой вопрос - серверу посылается запрос на что он выдает информацию обратно как в цикле посылать запрос и переходить к следующему значению только после того как будет получен и обработан ответ???


14-9275
dimonf
2002-01-16 20:20
2002.03.04
Если кто из Кирова (обл.)?