• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Update Failed

  • Автор темы BigSam
  • Дата начала
B

BigSam

Здравствуйте, нужна помощь, при попытке внесения изменения в таблицу выходит ошибка 'update failed', код ниже,
используется TUpdateSQL, текст запроса 'update test_table set ColA=:ColA,ColB=:ColB
where ColA=:Old_ColA and ColB=:Old_ColB'. Значения редактируются в DBGrid, затем после нажатия
кнопки ОК:

Код:
procedure TMainForm.ButtonOKClick(Sender: TObject);
begin
with Query1 do
begin
Database1.StartTransaction;
try
ApplyUpdates; 
Database1.Commit; 
except
Database1.Rollback; 
raise; 
end;
CommitUpdates; 
end;

изменения должны сохраняться в БД, но выходит выше упомянутая ошибка, не нашел ответа в гугле, может не так искал, не спорю, но нужна помощь, заранее спасибо!
 
B

BigSam

Edatabase error with message 'update failed', прощу прощения забыл добавить Event объекта Query - On UpdateRecord :

procedure TMainForm.Query1UpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
UpdateSQL1.Apply(ukModify);
end;

вот после этого валится ошибка
 
S

SNike

Что за база данных? MS SQL, Firebird... ?
TUpdateSQL - из какой библиотеки, от сторонних разработчиков?
 
S

SNike

К сожалению, с Oracle не работал.
Попробуй выполнить запрос не из своей программы, а из другой. Наверняка ведь есть что-либо наподобие IBExpert, SQL Studio и т.п., которые позволяют работать с Oracle. Там ручками пропишешь SQL и попробуешь выполнить. Если не пройдет и оттуда - значит дело не в твоей программе
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!