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

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

Удаление из TADOQuery записей [D7, XP]


sanya_m ©   (2014-07-17 22:27:00) 

Привет, мастера!
Ситуация такая: есть TDBGrid в котором отображаются результаты SQL- запроса из TADOQuery.
Вопрос 1: Можно ли отключить добавление записей в этот TDBGrid по кнопке Insert, т.е. запретить?

Вопрос 2: как сделать чтобы при нажатии CTRL+Delete удалялись не только выбранная запись, но и определенная запись из другой таблицы или запроса?

Заранее спасибо!!!


MonoLife   (2014-07-22 09:46:00) [1]

>Вопрос 1:
DBGrid.Options =>dgEditing=>false


Inovet   (2014-07-20 07:28:00) [2]

> [10] icWasya ©   (19.07.14 21:02)
> Cancel - закроет форму

TDataSet.Cancel


icWasya   (2014-07-19 21:02:00) [3]

to Inovet ©   (19.07.14 13:09) [9]
>> [6] junglecat   (19.07.14 12:44)
>> OnBeforeInsert - Abort()

>Cancel не мягче будет?

Cancel - закроет форму
Abort() - прерывает работу текущего обработчика события.


Inovet   (2014-07-19 13:09:00) [4]

> [6] junglecat   (19.07.14 12:44)
> OnBeforeInsert - Abort()

Cancel не мягче будет?


эта пять   (2014-07-19 13:03:00) [5]

Удалено модератором


эта пять   (2014-07-19 12:47:00) [6]

Предлагаешь выломать клавишу из клавиатуры?


предлагаю вспомнить что у грида нет кнопки инсерт.
то есть она либо пользовательская, либо клавиатурная железная.
в первом случае смотрим выше, во втором тоже куча вариантов.
от revoke insert до триггеров instead

но автору это не поможет, потому что это все эти пункты для программиста.
а он
в Options можно поставить "только чтение", но это мне не походит.


junglecat   (2014-07-19 12:44:00) [7]

> Вопрос 1: Можно ли отключить добавление записей в этот TDBGrid
> по кнопке Insert, т.е. запретить?

совсем запретить? OnBeforeInsert - Abort()

> Вопрос 2: как сделать чтобы при нажатии CTRL+Delete удалялись
> не только выбранная запись, но и определенная запись из
> другой таблицы или запроса?

OnAfterDelete
if (GetKeyState(VK_CONTROL) and $8000) <> 0) then
 //удалить из другой таблицы
либо
OnKeyDown
if (Key = VK_DELETE) then begin
 // удалить из основной
 if (ssCtrl in ShiftState) then
 // удалить из другой
end


Германн   (2014-07-19 01:52:00) [8]


> эта пять   (18.07.14 10:12) [3]
>
> Можно ли отключить добавление записей в этот TDBGrid по
> кнопке Insert, т.е. запретить?
>
> Можно.
> Убрать кнопку инсерт

Предлагаешь выломать клавишу из клавиатуры?

> sanya_m   (18.07.14 08:55) [2]
>
> в Options можно поставить "только чтение", но это мне не походит.

Тогда сложно.


sanya_m   (2014-07-18 23:33:00) [9]


> Убрать кнопку инсерт, убрать обработчки кнопки инсерт

А как убрать кнопку Инсерт? Я не хочу ставить ловушки нажатий кнопок.


эта пять   (2014-07-18 10:12:00) [10]

Можно ли отключить добавление записей в этот TDBGrid по кнопке Insert, т.е. запретить?

Можно.
Убрать кнопку инсерт, убрать обработчки кнопки инсерт, не убирать обработчик но ничего не делать в нем.


sanya_m   (2014-07-18 08:55:00) [11]

в Options можно поставить "только чтение", но это мне не походит.


Cobalt   (2014-07-17 23:30:00) [12]

1) Да. см свойства, что-то типа Options
2) см. события типа After/BeforeDelete


Наверх

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