Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
1-9232
forrest1
2002-02-15 17:26
2002.03.04
Как выделить одну строку в DBGrid для SelectedRows


4-9347
Beauty_Full
2002-01-03 20:54
2002.03.04
Принтер и все связанное с ним


1-9126
Olivka
2002-02-16 21:29
2002.03.04
Окна: одно за другим ?


1-9172
-=CrazyFish=-
2002-02-13 11:52
2002.03.04
Toolbar с горизонтальной прокруткой


14-9276
VEG
2002-01-16 23:05
2002.03.04
Народ!!! Как можно качнуть всю инфу с картриджа 8 и 16 битных приставок???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский