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

Вниз

Программирование 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.031 c
1-1086279510
MAPIIIAJL
2004-06-03 20:18
2004.06.20
Автоматизация в Excel


1-1086335644
Fast
2004-06-04 11:54
2004.06.20
Копировани котролов в RunTime


1-1086706164
Владимир
2004-06-08 18:49
2004.06.20
Проблема с Imagelist


1-1086075417
V-Isa
2004-06-01 11:36
2004.06.20
Ребята, подскажите с чего начать.


1-1086426640
Maxud
2004-06-05 13:10
2004.06.20
Ошибка при проверке типа





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский