![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Очистка DBGRID-а [D6, 95/98]
Sirus © (2006-09-13 13:12:00)Подскажите, знатоки, как очистить сетку DBGRID-а от введенных данных. Допустим у меня есть кнопка на форме Отменить и я хочу при нажатии на нее убрать из сетки DBGRID-а все данные не записывая их в данную. Подскажите примерный код такой операции.
Благодарю за внимание.
Сайрус
13.09.2006
Anatoly Podgoretsky (2006-09-14 19:23:00) [1]MsGuns © (14.09.06 11:34) [16]
Пока автор четко не скажет ЧТО ЕМУ НАДО СДЕЛАТЬ, дальнейшее обсуждение бессмыслено.
Автор не скажет, как сказил он тут давно, но как будто и не приходил.
аматор (2006-09-14 13:56:00) [2]Привет...
Используйте таблицу в памяти, на диске. Потом заносите из той таблицы в базу че душа пожелает. Плюс, если используете сервеный вариант, ВААБЩЕ лафа. Еще, кажись, клиент датасет есть (это приблизительный перевод :)). Вариантов море. Но, очистить, :), мона перерисовать дбгрид. А вообще зачем в инете столько книг лежит? Да в клиет датасете есть фишка, дельтой обзывает, она показывает какие изменения вы произвели.
Virgo_Style (2006-09-14 11:53:00) [3]MsGuns © (14.09.06 11:34) [16]
Из сабжа явно следует, что надо
Sirus (13.09.06 13:12)
очистить сетку DBGRID-а от введенных данных.
Поскольку очистка сетки от данных - это заведомо странная идея, каждый напрягает свою фантазию, как может.
> Пока автор четко не скажет ЧТО ЕМУ НАДО СДЕЛАТЬ,
> дальнейшее обсуждение бессмыслено.
Ну тогда, с Вашего позволения, дискуссию с Вами заканчиваю %-)
MsGuns (2006-09-14 11:34:00) [4]>Virgo_Style © (13.09.06 17:06) [14]
>телепатор предположил, что надо отменить то, что пользователь натворил в режиме редактирования, до post. Насколько мне известно, именно это и произошло бы.
Из сабжа явно следует, что надо очистить"грид", т.е. удалить (из буфера, из таблицы, с глаз долой - автор не удосужился пояснить, а наводящий вопрос и вовсе проигнорировал), и все введенные на сей момент записи. Коих может быть две, десяток, сотня... Т.е. методы над одной записью(к коим и относятся упомянутые Вами Post и Cancel) тут явно не при чем. Т.е. проблемы ни разу не решают.
Пока автор четко не скажет ЧТО ЕМУ НАДО СДЕЛАТЬ, дальнейшее обсуждение бессмыслено.
Slym(RO) (2006-09-14 10:36:00) [5]LockType:=ltBatchOptimistic
CancelBatch
UpdateBatch
Virgo_Style (2006-09-13 17:06:00) [6]MsGuns © (13.09.06 15:42) [11]
И что будет ?
В ответ на
> Кстати, в таблицу я ничего пока не ввожу, так
> что и очищать нечего.
телепатор предположил, что надо отменить то, что пользователь натворил в режиме редактирования, до post. Насколько мне известно, именно это и произошло бы.
MsGuns (2006-09-13 16:30:00) [7]>Sirus (13.09.06 16:24) [12]
>Отключая DBGRID от DataSet они очищают даже то, что не следует убирать (наименование полей таблицы ). Получается не очень красиво.
Сайрус.
Поставьте заведомо ложный фильтр и будет вам пустой грид с шапкой. Только вот на вопрос а зачем это все ответ не получен.
Sirus (2006-09-13 16:24:00) [8]Спасибо за предложенные варианты, но все страдают одним серьезным недостатком. Отключая DBGRID от DataSet они очищают даже то, что не следует убирать (наименование полей таблицы ). Получается не очень красиво.
Сайрус.
MsGuns (2006-09-13 15:42:00) [9]>StriderMan © (13.09.06 14:34) [4]
>очисть DataSet, прицепленный к этому гриду.
Можно поподробнее ?
>Virgo_Style © (13.09.06 15:11) [7]
>DataSet.Cancel, что ли?
И что будет ?
MsGuns (2006-09-13 15:40:00) [10]>Некто_Аполло (13.09.06 13:15) [1]
>DB_Grid прикреплен к таблице базы данных.
Ну да, как штык к автомату.
>Тебе нужно ее очистить.
Замечательный совет ;)))
>Sirus (13.09.06 15:29) [8]
>Пока из предложенного ничего не катит. Выдает, что методы в форме не поддерживаются.Так что вопрос не такой простой как кажется кое-кому. Может кто детальней объснит все тонкости.
Сайрус.
Вопрос возник от непонимания сути организации работы с базами данных в Delphi
"Очитстить" грид можно многими способами, начиная от переоткрытия запроса с предикатом
Where Field1<>Field1
и заканчивая простым отключением датасета от грида
DBGrid1.DataSource.DataSet := nil;
Главное же я так и не понял, зачем грид нужно ОЧИЩАТЬ ?
Если речь идет о заполнении некоторых документов (типа счета-фактуры) "с нуля", то для этого ГРИД очищать не надо, просто :
- либо открывется запрос на несуществующую детализацию мастер записи (если в таблицу заголовков счетов была только что добавлена новая запись, то в детал-таблице у нее не будет ни одной строки-записи и запрос вернет пустой НД), если надо вносить изменения в БД "по ходу" ввода информации (через кэш либо напрямую сразу)
- либо надо работать через компоненты, напрямую с БД не связанные, а "по кнопке" записывать отдельным запросом порцию изменений либо сразу весь документ с полной заменой старого содержимого.
Sergey13 (2006-09-13 15:35:00) [11]> [8] Sirus (13.09.06 15:29)
> Может кто детальней объснит все тонкости.
Это сложно, так как ты пока детально не объяснил что делаешь.
Sirus (2006-09-13 15:29:00) [12]Пока из предложенного ничего не катит. Выдает, что методы в форме не поддерживаются.Так что вопрос не такой простой как кажется кое-кому. Может кто детальней объснит все тонкости.
Сайрус.
Virgo_Style (2006-09-13 15:11:00) [13]DataSet.Cancel, что ли?
Sergey13 (2006-09-13 14:50:00) [14]> [3] Sirus (13.09.06 14:31)
> Кстати, в таблицу я ничего пока не ввожу, так что
> и очищать нечего.
А куда же ты вводишь, скрытный ты наш?
Elen (2006-09-13 14:47:00) [15]
> StriderMan
TDataSet.Active:=false? не пойдет?
StriderMan (2006-09-13 14:34:00) [16]очисть DataSet, прицепленный к этому гриду.
Sirus (2006-09-13 14:31:00) [17]То, что данных в DBGRID-e нет - это я усвоил. Но не зависимо от этого проблема остается. Можно сформулировать ее иначе : как очистить экран формы с DBGRID-ом, убрав из сетки все введенные данные, т.е. показать пустой DBGRID. Внятного ответа я не получил, а неконкретные рассуждения пролемы не решают. Кстати, в таблицу я ничего пока не ввожу, так что и очищать нечего. Мне просто надо отменить набранные данные и произвести сопутствующие этому операции ( очистить сетку DBGRID-а).
С уважением Сайрус
13.09.2006
Sergey13 (2006-09-13 13:20:00) [18]> [0] Sirus (13.09.06 13:12)
Ты вроде давно уже сюда пишешь, но уровень вопросов так и не растет.
По сути - ты хочешь побрить зеркало. Нет в гриде данных.
Некто_Аполло (2006-09-13 13:15:00) [19]DB_Grid прикреплен к таблице базы данных. Тебе нужно ее очистить.