Текущий архив: 2004.06.20;
Скачать: CL | DM;
Вниз
Программирование TDBGrid Найти похожие ветки
← →
Kraw (2004-05-27 11:33) [0]Уважаемые господа, как по кнопке Навигатора "Вставить" добиться, того чтобы в TDBGrid запись добавлялась в конец TBGrid"а (как по
кнопке Down на последней записи). Спасибо.
← →
Соловьев © (2004-05-27 11:35) [1]
> (как по
> кнопке Down на последней записи).
Такой кнопки нет :)
Создать поле где писать время добавления записи и сортировать по нем
← →
Соловьев © (2004-05-27 11:35) [2]
> (как по
> кнопке Down на последней записи).
Такой кнопки нет :)
Создать поле где писать время добавления записи и сортировать по нем
← →
Vlad © (2004-05-27 11:36) [3]
> Kraw (27.05.04 11:33)
У навигатора есть событие OnClick.
A у DataSet есть метод Append
← →
Соловьев © (2004-05-27 11:38) [4]
> A у DataSet есть метод Append
запись не будет добавлена в конец физически, а визуально. В конце концов при долгой эксплуатации(вставка+удаление) записи перемешаются и визуально.
← →
Vlad © (2004-05-27 11:43) [5]
> Соловьев © (27.05.04 11:38) [4]
а где сказано что нужно добавить ФИЗИЧЕСКИ в конец ?
И где он, этот физический конец таблицы?
Товарищ не об этом спрашивал по-моему.
← →
Sergey13 © (2004-05-27 11:46) [6]2Kraw (27.05.04 11:33)
Самое смешное, что в грид добавлять записи нельзя. Ни в "начало" ни тем более в конец. Там и конца то нет. 8-)
← →
Соловьев © (2004-05-27 11:49) [7]2 Vlad
> запись добавлялась в конец TBGrid"а
Как по твоему это понимать?
← →
Vlad © (2004-05-27 11:51) [8]
> Соловьев © (27.05.04 11:49) [7]
А так что люди поголовно путают DBGrid с DataSet. По-моему тут и телепатии не надо, итак ясно.
При Append запись добавляется именно в конец DataSet
← →
Соловьев © (2004-05-27 11:57) [9]
> При Append запись добавляется именно в конец DataSet
Ну я сно что телепатии не надо. Допустим он прогу закрыл - где будет добавленая запись при повторном запуске?
← →
Vlad © (2004-05-27 12:10) [10]
> Соловьев © (27.05.04 11:57) [9]
зависит от индекса или сортировки в SQL предложении. Разве это трудно сделать ?
Но вопрос-то был не об этом, если ты внимательно почитаешь. Человек хочет чтобы при нажатии кнопки "Добавить", пустая запись добавлялась в конец набора данных.
← →
Соловьев © (2004-05-27 12:14) [11]
> зависит от индекса или сортировки в SQL предложении. Разве
> это трудно сделать ?
нет конечно. на это и наталкиваю автора поста.
← →
TATIANA (2004-05-27 12:20) [12]Если есть метод Append в наборе данных (DataSet), то запись должна добавляться физически в конец , тогда открывать набор данных надо без индексирования , а Grid визуально отображает набор данных .
← →
Vlad © (2004-05-27 12:34) [13]
> TATIANA (27.05.04 12:20) [12]
> то запись должна добавляться физически в конец
Это заблуждение. Во всяком случае, относительно клиент-серверных СУБД.
← →
Kraw (2004-05-28 12:35) [14]Ребята вы меня немного не поняли, речь идет чисто о визуальном просмотре добавляемой записи в DBGrid, без индексов DataSet. Сортировка же в запросе есть, но идет она по полю, в которое пользователь еще не ввел информацию. Клавиша же Down - это стрелка вниз. С уважением Kraw.
← →
Соловьев © (2004-05-28 12:37) [15]
> Сортировка же в запросе есть
надо еще одну сортировку. см. [1]
← →
Kraw (2004-05-28 16:47) [16]По сортировке не проходит (и не будет проходить), т.к. введенной записи физически еще нет в наборе данных, а появиться она только
после ApplyUpdates и CommitUpdates. Но из-за одной записи переоткрывать запрос ненадобно. В этом случае я думаю нужно программировать сам DBGrid. Но как ?
← →
Соловьев © (2004-05-28 16:52) [17]
> [16] Kraw (28.05.04 16:47)
Грид не надо трогать.
тогда действительно Append, а при выборке сортировать все равно по полю где храниться время ввода.
← →
Vlad © (2004-05-28 16:54) [18]
> Kraw (28.05.04 16:47) [16]
Тебе сказали Append вместо Insert делай.
И забудь ты про DBGrid, он тут НЕ ПРИЧЕМ!
Записи хранятся не в нем, а в DataSet
Попробуй сделать следующее:
На туже форму, где твой DBGrid помещаем кнопку. На событие OnClick этой кнопки пишем след. строчку:
DBGrid1.DataSource.DataSet.Append;
← →
Kraw (2004-05-28 17:14) [19]По кнопке понятно, а по Навигатору(+) вставляются сразу две записи 1-я перед курсором, 2-я в конец. Как отработать с Навигатором ?
← →
Sergey13 © (2004-05-28 17:21) [20]2Kraw (28.05.04 17:14) [19]
А у нафигатора обработчиков нет что ли? Или кнопку нельзя определить?
Вообще - какая разница в начало или в конец? Тем паче в списке баз то указал IB, MSSQL. Нет там ни начал ни концов.
← →
Kraw (2004-05-28 17:31) [21]Sergey13, ты сам то пробовал обработчики нафигатора или это просто выпендреж ? Такой код не проходит:
procedure TFPrih.DBNavigator1Click(Sender: TObject;
Button: TNavigateBtn);
begin
if Button=nbInsert then
DBGrid1.DataSource.DataSet.Append
end;
← →
Vlad © (2004-05-28 17:37) [22]
> Kraw (28.05.04 17:31) [21]
Да ? Странно, а у меня прходит, хотя этот код и некорректный.
Попробуй вот что:
Событие DBNavigator.BeforeAction:TDBNavigator(Sender).DataSource.DataSet.Append;
Abort;
Это должно сработать.
А чтобы в будущем не возникало таких вопросов, берешь открываешь VCL код DBNavigator и смотришь как он работает.
← →
Vlad © (2004-05-28 17:38) [23]Забыл добавить проверку:
if Button=nbInsert then
← →
Kraw (2004-05-28 17:51) [24]Спасибо. Все нормально. Вот теперь я тебе верю.
← →
Kraw (2004-05-28 17:51) [25]Спасибо. Все нормально. Вот теперь я тебе верю.
← →
Sergey13 © (2004-05-28 17:53) [26]2Kraw (28.05.04 17:31) [21]
>ты сам то пробовал обработчики нафигатора или это просто выпендреж ?
А как же. И работает как не удивительно. Что я виноват что ли, если работат у меня. 8-(
Страницы: 1 вся ветка
Текущий архив: 2004.06.20;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.037 c