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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.056 c
2-1175108515
Углук
2007-03-28 23:01
2007.04.22
Что быстрее? Чарт или директиИксовский канвас?


2-1175316917
Roman_S
2007-03-31 08:55
2007.04.22
Складной? Label


3-1170269416
Ёжик
2007-01-31 21:50
2007.04.22
Владелец хранимок и таблиц


15-1174702580
lookin
2007-03-24 05:16
2007.04.22
Тоже вопрос


3-1170319466
LIO
2007-02-01 11:44
2007.04.22
Delphi + BDE + MS SQL 2005





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