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

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

Программирование TDBGrid [D5, IB6.x, MSSQL, dBase, FoxPro]


Страницы:   1 2

Kraw ©   (2004-05-27 11:33:00) 

Уважаемые господа, как по кнопке Навигатора "Вставить" добиться, того чтобы в TDBGrid запись добавлялась в конец TBGrid'а (как по
кнопке Down на последней записи). Спасибо.


Sergey13   (2004-05-28 17:53:00) [1]

2Kraw   (28.05.04 17:31) [21]
>ты сам то пробовал обработчики нафигатора или это просто выпендреж ?
А как же. И работает как не удивительно. Что я виноват что ли, если работат у меня. 8-(


Kraw   (2004-05-28 17:51:00) [2]

Спасибо. Все нормально. Вот теперь я тебе верю.


Kraw   (2004-05-28 17:51:00) [3]

Спасибо. Все нормально. Вот теперь я тебе верю.


Vlad   (2004-05-28 17:38:00) [4]

Забыл добавить проверку:
if Button=nbInsert then


Vlad   (2004-05-28 17:37:00) [5]


> Kraw   (28.05.04 17:31) [21]

Да ? Странно, а у меня прходит, хотя этот код и некорректный.

Попробуй вот что:
Событие DBNavigator.BeforeAction:

TDBNavigator(Sender).DataSource.DataSet.Append;
Abort;

Это должно сработать.

А чтобы в будущем не возникало таких вопросов, берешь открываешь VCL код DBNavigator и смотришь как он работает.


Kraw   (2004-05-28 17:31:00) [6]

Sergey13, ты сам то пробовал обработчики нафигатора или это просто выпендреж ? Такой код не проходит:
procedure TFPrih.DBNavigator1Click(Sender: TObject;
 Button: TNavigateBtn);
begin
 if Button=nbInsert then
   DBGrid1.DataSource.DataSet.Append
end;


Sergey13   (2004-05-28 17:21:00) [7]

2Kraw   (28.05.04 17:14) [19]
А у нафигатора обработчиков нет что ли? Или кнопку нельзя определить?
Вообще - какая разница в начало или в конец? Тем паче в списке баз то указал IB, MSSQL. Нет там ни начал ни концов.


Kraw   (2004-05-28 17:14:00) [8]

По кнопке понятно, а по Навигатору(+) вставляются сразу две записи 1-я перед курсором, 2-я в конец. Как отработать с Навигатором ?


Vlad   (2004-05-28 16:54:00) [9]


> Kraw   (28.05.04 16:47) [16]

Тебе сказали Append вместо Insert делай.
И забудь ты про DBGrid, он тут НЕ ПРИЧЕМ!
Записи хранятся не в нем, а в DataSet

Попробуй сделать следующее:
На туже форму, где твой DBGrid помещаем кнопку. На событие OnClick этой кнопки пишем след. строчку:
DBGrid1.DataSource.DataSet.Append;


Соловьев   (2004-05-28 16:52:00) [10]


> [16] Kraw   (28.05.04 16:47)

Грид не надо трогать.

тогда действительно Append, а при выборке сортировать все равно по полю где храниться время ввода.


Kraw   (2004-05-28 16:47:00) [11]

По сортировке не проходит (и не будет проходить), т.к. введенной записи физически еще нет в наборе данных, а появиться она только
после ApplyUpdates и CommitUpdates. Но из-за одной записи переоткрывать запрос ненадобно. В этом случае я думаю нужно программировать сам DBGrid. Но как ?


Соловьев   (2004-05-28 12:37:00) [12]


> Сортировка же в запросе есть

надо еще одну сортировку. см. [1]


Kraw   (2004-05-28 12:35:00) [13]

Ребята вы меня немного не поняли, речь идет чисто о визуальном просмотре добавляемой записи в DBGrid, без индексов DataSet. Сортировка же в запросе есть, но идет она по полю, в которое пользователь еще не ввел информацию. Клавиша же Down - это стрелка вниз. С уважением Kraw.


Vlad   (2004-05-27 12:34:00) [14]


> TATIANA   (27.05.04 12:20) [12]


> то запись должна добавляться физически в конец  

Это заблуждение. Во всяком случае, относительно клиент-серверных СУБД.


TATIANA   (2004-05-27 12:20:00) [15]

Если есть метод Append в наборе данных (DataSet), то запись должна добавляться физически в конец  , тогда открывать набор данных надо без индексирования , а Grid визуально отображает набор данных .


Соловьев   (2004-05-27 12:14:00) [16]


> зависит от индекса или сортировки в SQL предложении. Разве
> это трудно сделать ?

нет конечно. на это и наталкиваю автора поста.


Vlad   (2004-05-27 12:10:00) [17]


> Соловьев ©   (27.05.04 11:57) [9]

зависит от индекса или сортировки в SQL предложении. Разве это трудно сделать ?
Но вопрос-то был не об этом, если ты внимательно почитаешь. Человек хочет чтобы при нажатии кнопки "Добавить", пустая запись добавлялась в конец набора данных.


Соловьев   (2004-05-27 11:57:00) [18]


> При Append запись добавляется именно в конец DataSet

Ну я сно что телепатии не надо. Допустим он прогу закрыл - где будет добавленая запись при повторном запуске?


Vlad   (2004-05-27 11:51:00) [19]


> Соловьев ©   (27.05.04 11:49) [7]

А так что люди поголовно путают DBGrid с DataSet. По-моему тут и телепатии не надо, итак ясно.
При Append запись добавляется именно в конец DataSet


Соловьев   (2004-05-27 11:49:00) [20]

2 Vlad

> запись добавлялась в конец TBGrid'а

Как по твоему это понимать?


Страницы:   1 2

Наверх

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