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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2013, 16:06   #1
lvl
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию не удается найти строку для обновления...делфи

При удалении записи, выскакивает ошибка о том, что не удается найти строку для обновления, однако после перезапуска программы - запись оказывается удаленной
Код:
Код:
  if Application.MessageBox('Вы хотите удалить?','rr',mb_YesNo)=idYes then begin
    DataModule1.ADOQuery21.Delete;
    DataModule1.ADOQuery21.Post;
    DataModule1.ADOQuery21.Close;
    DataModule1.ADOQuery21.Open;
    end;
в чем ошибка?

Последний раз редактировалось Stilet; 21.05.2013 в 22:47.
lvl вне форума Ответить с цитированием
Старый 21.05.2013, 09:33   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

уберите строчку:
DataModule1.ADOQuery21.Post;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.05.2013, 09:58   #3
lvl
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию

тогда будет тоже самое

Последний раз редактировалось lvl; 21.05.2013 в 10:00.
lvl вне форума Ответить с цитированием
Старый 21.05.2013, 17:45   #4
hon
Форумчанин
 
Регистрация: 08.06.2011
Сообщений: 693
По умолчанию

Телепатов нет. Кидай исходник.
hon вне форума Ответить с цитированием
Старый 21.05.2013, 22:48   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ADOQuery21.Delete
А я вот не рекомендую удаление делать методами класса для ADOQuery. Удаление может происходить в кэше в рамках транзакции, и в БД то попадать то не попадать.
Лучше всего с Query работать запросами, в твоем случае запросом на удаление DELETE FROM
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.05.2013, 17:39   #6
lvl
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию

Вы имеете в виду примерно так:
Код:
ADOQuery1.Close();
ADOQuery1.SQL.Clear();
ADOQuery1.SQL.Add(DELETE Строка1, Строка2)
ADOQuery1.SQL.Add(from Table1);
ADOQuery1.ExecSQL();
Удаляются все записи таблицы

Последний раз редактировалось Stilet; 22.05.2013 в 21:13.
lvl вне форума Ответить с цитированием
Старый 22.05.2013, 20:03   #7
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Удаляются все записи таблицы
чтоб не удалялось все, нужно в Delete еще условие добавлять, по которому выбирается, что удалять. Типа такого:

Код:
DELETE * FROM table WHERE table.ID=:id
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 25.05.2013, 12:42   #8
lvl
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию

никак не могу разобраться у меня две связанные таблицы, которые в дбгрид вывожу через adoquery...вот как запрос написать?? как только не пытаюсь - не получается :/

Код:
DataModule.Adoquery2.Close;
DataModule.Adoquery2.SQL.Clear;
DataModule.Adoquery2.SQL.Add('DELET E *');
DataModule.Adoquery2.SQL.Add('from Istoria, ved');
DataModule.Adoquery2.SQL.Add('where istoria.nom=ved.nom');
DataModule.Adoquery2.Open
lvl вне форума Ответить с цитированием
Старый 25.05.2013, 17:18   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Не катит Ваш запрос. По его логике выходит, что нужно из таблиц Istoria и Ved удалять все записи с одинаковыми значениями поля nom.
На самом деле Вам нужно организовать каскадное удаление - то есть перед удалением поля ved.Nom сначала удалить все значения с этим полем из Istoria, а потом удалять ved.nom. Или получать индекс удаляемой записи и передавать в качестве параметра.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не удается найти точку входа D][mon Общие вопросы .NET 2 19.04.2012 18:55
Работа в Ворде омрачена, Can't find project or library - Не удается найти проект или библиотеку Ципихович Эндрю Microsoft Office Word 6 11.09.2011 10:50
Не удается найти [Путь, имя файла] syne Операционные системы общие вопросы 5 01.06.2009 18:13
avast! (системе не удается найти указанный путь) ronich Свободное общение 4 10.01.2008 22:22