Главная страница
    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.47 MB
Время: 0.041 c
15-1174646776
pasha_golub
2007-03-23 13:46
2007.04.22
Уголок гурмана


2-1175607458
likenoother
2007-04-03 17:37
2007.04.22
несколько вопросов


2-1175707626
Новичёк
2007-04-04 21:27
2007.04.22
Как дать pointer со смещением


15-1175096504
Галинка
2007-03-28 19:41
2007.04.22
Что из ужастиков новенькое есть


2-1175685635
Мимопроходящий
2007-04-04 15:20
2007.04.22
Заварочный чайник





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