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

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

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

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

Parameter Object Is Improperly Defined. Inconsistent Or Incomplete Inf

  • Автор темы chka
  • Дата начала
Статус
Закрыто для дальнейших ответов.
C

chka

Всем ЗДРАВСТВУЙТЕ!

помогите пожалуйста ламеру!

Пытаюсь заменить значение поля в таблице БД, делаю это так:
Код:
  if ADOConnection1.InTransaction Then
Exit;

if ADOQuery4.Active then
ADOQuery4.Close;
F :=False;
ADOQuery2.First;
ADOConnection1.BeginTrans;

with ADOQuery4 do
begin
while not ADOQuery2.Eof do
begin

SQL.Clear;
SQL.Add('UPDATE ibank2.opers2clients SET operator_id:=ADOQuery6.FieldByName(operator_id) where client_id=ADOQuery2.FieldByName(client_id)');
try
ExecSQL;

except
F :=not F;
end;
if F then
Break;

ADOQuery2.Next;
end;
end;
if ADOConnection1.InTransaction then
begin
if F then
ADOConnection1.RollbackTrans
else
ADOConnection1.CommitTrans;
end;
вылетает ошибка: Parameter object is improperly defined. inconsistent or incomplete information was provided.
Помогите плз! :(
 
B

Barmutik

Вот эта надпись как-то не внушает ...

SQL.Add('UPDATE ibank2.opers2clients SET operator_id:=ADOQuery6.FieldByName(operator_id) where client_id=ADOQuery2.FieldByName(client_id)');

СТоило бы навернок так:

Код:
SQL.Add('UPDATE ibank2.opers2clients SET operator_id = ' + IntToStr(ADOQuery6.FieldByName('operator_id').AsInteger) + ' where client_id = ' + IntToStr(ADOQuery2.FieldByName(client_id).AsInteger));
 
C

chka

Спасибо! но теперь вылетает ошибка: Undeclared identifier: 'client_id'. Это из-за чего может быть? кто нить помагите плз!
 
B

Barmutik

:)

Ну вообще-то стоило бы взять client_id в кавычки .. описался я когда писал .. ну можно было бы и по ошибке догадаться...


Код:
SQL.Add('UPDATE ibank2.opers2clients SET operator_id = ' + IntToStr(ADOQuery6.FieldByName('operator_id').AsInteger) + ' where client_id = ' + IntToStr(ADOQuery2.FieldByName('client_id').AsInteger));
 
C

chka

спасибо! все получилось! извените за глупые вопросы! не заметила! :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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