Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.22;
Скачать: CL | DM;

Вниз

Запрет автовставки в таблицу   Найти похожие ветки 

 
Atanas   (2007-02-06 12:25) [0]

Как можно запретить автоматическое добавление записи?
Например комбобокс присоединен к таблице. Если курсор расположен в конце рекордсета, то при выборе из него какого-либо значения автоматически добавится запись. Мне нужно чтобы добавить запись я мог только программно.
При этом желательно обработчик должен быть один на таблицу, а не в каждом присоединенном контроле.


 
Desdechado ©   (2007-02-06 12:36) [1]

> комбобокс присоединен к таблице
Это как?

> Если курсор расположен в конце рекордсета, то при выборе из него
> какого-либо значения автоматически добавится запись
Из него - это из комбо или из датасета?
Запись куда - в комбо или датасет?

Datasource.AutoEdit:=False


 
ЮЮ ©   (2007-02-06 12:39) [2]

в качестве
DataSet.BeforeInsert
назначить метод с однм лишь Abort;

в коде же всегда можно его обойти:

DataSet.BeforeInsert := nil;
try
 DataSet.Inasert;
 ...
finally
 DataSet.BeforeInsert := <описанный выше метод>
end;


 
Atanas   (2007-02-06 12:45) [3]


> > комбобокс присоединен к таблице
> Это как?


ДБ комбобокс через DataSource, имхо очевидно...


 
Atanas   (2007-02-06 12:46) [4]

Выбор значения из комбобокса


 
Desdechado ©   (2007-02-06 12:54) [5]

> имхо очевидно
Тогда очевидны и ответы на твои вопросы, поэтому их задавать смысла нет.


 
ЮЮ ©   (2007-02-06 13:05) [6]


> Если курсор расположен в конце рекордсета, то при выборе
> из него какого-либо значения автоматически добавится запись.
>  

Это возможно только на пустом DataSet-е. В дальнешем ДБ комбобокс редактирует только текущую запись. Сам он навигацией не занимается


 
Atanas   (2007-02-06 13:09) [7]

У меня такой вариант родился.
В событие BeforeInsert таблицы н.р. Table1 пишем следующее:

 if Table1.Tag=1 then
   Table1.Tag:=0
 else
   Abort;
 <далее код обработчика, если есть...>

И перед прогрммной записью в таблицу просто устанавливаем:

Table1.Tag:=1;


 
ЮЮ ©   (2007-02-06 13:25) [8]


> Atanas   (06.02.07 13:09) [7]

Код - это хорошо. Непонятно только как выбор в TDBCombobox-е может привести к вставке записи, кроме случая, когда он вообще пуст.


 
Atanas   (2007-02-06 13:52) [9]


> Непонятно только как выбор в TDBCombobox-е может привести
> к вставке записи, кроме случая, когда он вообще пуст.


Так и есть...


 
Atanas   (2007-02-06 14:03) [10]


> Desdechado
> Datasource.AutoEdit:=False


А вы сударь подумали что этим мы запрещаем редактирование а не добавление, замечаете разницу?
Я тут по форуму посмотрел, не в первый раз наезды с вашей стороны, давайте быть повежливей.



Страницы: 1 вся ветка

Текущий архив: 2007.04.22;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.032 c
2-1175423853
>>DEATH<<
2007-04-01 14:37
2007.04.22
array of tbitmap


15-1174644621
Post_
2007-03-23 13:10
2007.04.22
Крякалка


2-1175249695
Merry
2007-03-30 14:14
2007.04.22
Копия базы *.gdb


3-1170353899
Константинов
2007-02-01 21:18
2007.04.22
Как создать пустую базу MS Access?


15-1174499240
Kerk
2007-03-21 20:47
2007.04.22
Summer of Code 2007





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