Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2009, 19:46   #1
Kara1989
Пользователь
 
Регистрация: 04.05.2009
Сообщений: 50
По умолчанию редактировать запись в ADO

Необходима ваша помощь!!!
Ниже приведен код, по нему я делаю фильтрацию, если после фильтрации в ADO найдется запись, - надо ее просто редактировать,
а если нету никакой записи хотелось бы добавить новую запись
вот у меня не получается
можете ли хоть какой-то совет дать, а то у меня вообще не получается

var
m:integer;
begin
Form12.ADOTable1.Filtered:=False;
Form12.ADOTable1.Filter:='TabN='''+ Form2.ADOTable2.Fields[0].Text+'''';
Form12.ADOTable1.Filtered:=true;
m:=Form12.ADOTable1.RecordCount;
If m=1 then Form12.ADOTable1.Edit
else Form12.ADOTable1.Insert;
...........................
end;
Kara1989 вне форума Ответить с цитированием
Старый 21.07.2009, 20:36   #2
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Код правильный, а что Вас смущает?
ИМХО, вместо Form12.ADOTable1.Edit лучше открывать форму в которой можно редактировать данные, а вместо Form12.ADOTable1.Insert - форму добавления новых данных, а дбгрид сделать readonly:=true;.
B вот это "m:=Form12.ADOTable1.RecordCoun t" - лишнее(зачем вводить лишнюю переменную)
Код:
.............
If Form12.ADOTable1.RecordCount > 0 then ОТКРЫВАЕМ ФОРМУ РЕДАКТИРОВАНИЯ
else ОТКРЫВАЕМ ФОРМУ ДОБАВЛЕНИЯ ДАННЫХ;
Gorychev вне форума Ответить с цитированием
Старый 21.07.2009, 21:09   #3
Kara1989
Пользователь
 
Регистрация: 04.05.2009
Сообщений: 50
По умолчанию

если после фильтрации нету никаких записей, то можно с легкостью сохранить данные (добавлять новую запись и сохранять значения)
а если найдется запись, то так ругается:

ИЗМЕНЕНИЯ НЕ БЫЛИ УСПЕШНО ВНЕСЕНЫ ИЗ-ЗА ПОВТОРЯЮЩИХСЯ ЗНАЧЕНИЙ В ИНДЕКСЕ, КЛЮЧЕВЫХ ПОЛЯХ ИЛИ СВЯЗЯХ.
ИЗМЕНИТЕ ДАННЫЕ В ПОЛЕ ИЛИ В ПОЛЯХ, СОДЕРЖАЩИХ ПОВТОРЯЮЩИЕСЯ ЗНАЧЕНИЯ, УДАЛИТЕ ИНДЕКС ИЛИ ПЕРЕОПРЕДЕЛИТЕ ЕГО, ЧТОБЫ РАЗРЕШИТЬ ПОВТОРЯЮЩИЕСЯ ЗНАЧЕНИЯ, И ПОВТОРИТЕ ПОПЫТКУ
Kara1989 вне форума Ответить с цитированием
Старый 22.07.2009, 15:47   #4
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

а какая у вас СУБД?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 22.07.2009, 15:52   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Kara1989 Посмотреть сообщение
а если найдется запись, то так ругается:
ИЗМЕНЕНИЯ НЕ БЫЛИ УСПЕШНО ВНЕСЕНЫ ИЗ-ЗА ПОВТОРЯЮЩИХСЯ ЗНАЧЕНИЙ В ИНДЕКСЕ, КЛЮЧЕВЫХ ПОЛЯХ ИЛИ СВЯЗЯХ.
ИЗМЕНИТЕ ДАННЫЕ В ПОЛЕ ИЛИ В ПОЛЯХ, СОДЕРЖАЩИХ ПОВТОРЯЮЩИЕСЯ ЗНАЧЕНИЯ, УДАЛИТЕ ИНДЕКС ИЛИ ПЕРЕОПРЕДЕЛИТЕ ЕГО, ЧТОБЫ РАЗРЕШИТЬ ПОВТОРЯЮЩИЕСЯ ЗНАЧЕНИЯ, И ПОВТОРИТЕ ПОПЫТКУ
Дайте перечень полей таблицы с указанием типов и перечень индексов с указанием полей, в них входящих.
И приведите процедуру, с помощью которой вы добавляете запись.
В принципе, в описании ошибки дана полная диагностика ваших ошибок...
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как редактировать сайт не зная PHP? Konstantin_Z Фриланс 17 01.01.2011 22:20
чем можно редактировать базу 1С v8 PuZan Свободное общение 11 10.07.2009 13:39
ADO, ADOTbale не отображает новую запись ScorpioN_T БД в Delphi 5 07.06.2009 15:12
Как редактировать дату в связаных таблицах ADO Alexsandr БД в Delphi 1 27.05.2008 09:38
Редактировать exe файл GAGARIN-NEW Общие вопросы Delphi 6 10.03.2008 15:17