![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрет автовставки в таблицу
Atanas © (2007-02-06 12:25:00)Как можно запретить автоматическое добавление записи?
Например комбобокс присоединен к таблице. Если курсор расположен в конце рекордсета, то при выборе из него какого-либо значения автоматически добавится запись. Мне нужно чтобы добавить запись я мог только программно.
При этом желательно обработчик должен быть один на таблицу, а не в каждом присоединенном контроле.
Atanas (2007-02-06 14:03:00) [1]
> Desdechado
> Datasource.AutoEdit:=False
А вы сударь подумали что этим мы запрещаем редактирование а не добавление, замечаете разницу?
Я тут по форуму посмотрел, не в первый раз наезды с вашей стороны, давайте быть повежливей.
Atanas (2007-02-06 13:52:00) [2]
> Непонятно только как выбор в TDBCombobox-е может привести
> к вставке записи, кроме случая, когда он вообще пуст.
Так и есть...
ЮЮ (2007-02-06 13:25:00) [3]
> Atanas (06.02.07 13:09) [7]
Код - это хорошо. Непонятно только как выбор в TDBCombobox-е может привести к вставке записи, кроме случая, когда он вообще пуст.
Atanas (2007-02-06 13:09:00) [4]У меня такой вариант родился.
В событие BeforeInsert таблицы н.р. Table1 пишем следующее:
if Table1.Tag=1 then
Table1.Tag:=0
else
Abort;
<далее код обработчика, если есть...>
И перед прогрммной записью в таблицу просто устанавливаем:
Table1.Tag:=1;
ЮЮ (2007-02-06 13:05:00) [5]
> Если курсор расположен в конце рекордсета, то при выборе
> из него какого-либо значения автоматически добавится запись.
>
Это возможно только на пустом DataSet-е. В дальнешем ДБ комбобокс редактирует только текущую запись. Сам он навигацией не занимается
Desdechado (2007-02-06 12:54:00) [6]> имхо очевидно
Тогда очевидны и ответы на твои вопросы, поэтому их задавать смысла нет.
Atanas (2007-02-06 12:46:00) [7]Выбор значения из комбобокса
Atanas (2007-02-06 12:45:00) [8]
> > комбобокс присоединен к таблице
> Это как?
ДБ комбобокс через DataSource, имхо очевидно...
ЮЮ (2007-02-06 12:39:00) [9]в качестве
DataSet.BeforeInsert
назначить метод с однм лишь Abort;
в коде же всегда можно его обойти:
DataSet.BeforeInsert := nil;
try
DataSet.Inasert;
...
finally
DataSet.BeforeInsert := <описанный выше метод>
end;
Desdechado (2007-02-06 12:36:00) [10]> комбобокс присоединен к таблице
Это как?
> Если курсор расположен в конце рекордсета, то при выборе из него
> какого-либо значения автоматически добавится запись
Из него - это из комбо или из датасета?
Запись куда - в комбо или датасет?
Datasource.AutoEdit:=False