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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2011, 15:59   #1
Deeller
Пользователь
 
Регистрация: 20.04.2011
Сообщений: 16
По умолчанию не выполняется запрос

здраствуйте, у меня база на акссе подключена через ADO.
имееться такой фрагмент кода:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
p:string;
begin
ADOCommand1.CommandText:= 'UPDATE Расход INNER JOIN Материалы ON Расход.код_материала  = Материалы.код_материала SET Расход.стоимость = Материалы.цена_за_единицу * Расход.количество';
ADOCommand1.Execute;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT Sum([Расход]![Стоимость]) AS Выражение1 FROM Расход WHERE (([Расход]![Код_изделия]=1));');
ADOQuery1.Active:=true;
i:=ADOQuery1.FieldByName('выражение1').AsInteger;
label1.Caption:=inttostr(i);
Memo1.Lines:=ADOQuery1.SQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('update Изделие set Итого_затраты = :p where Код_изделия = 1');
Memo1.Lines:=ADOQuery1.SQL;
aDOQuery1.ExecSQL;
end;
проблема в том что последний запрос
Код:
1
ADOQuery1.SQL.Add('update Изделие set Итого_затраты = :p where Код_изделия = 1');
не выполняется хотя я проверял сам текст запроса передается, но в таблицу никаких изменений не вносится, подскажите в чем может быть дело.
Deeller вне форума Ответить с цитированием
Старый 23.04.2011, 16:18   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
ADOQuery1.SQL.Add('update Изделие set Итого_затраты = : p where Код_изделия = 1');
Memo1.Lines:=ADOQuery1.SQL;
А кто будат ЗАДАВАТЬ значение параметра. Пустой параметр подразумевает значение NULL.
Код:
ADOQuery1.Parameters.Parambyname('p').value:=1000;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 23.04.2011 в 16:21.
evg_m вне форума Ответить с цитированием
Старый 23.04.2011, 16:20   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А где присвоение значения параметру в параметризированном запросе?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.04.2011, 16:31   #4
Deeller
Пользователь
 
Регистрация: 20.04.2011
Сообщений: 16
По умолчанию

параметру присвоено значение в свойствах... позже планировал сделать чтобы передавалась через переменную, но не работает даже так.
Deeller вне форума Ответить с цитированием
Старый 25.04.2011, 09:14   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
параметру присвоено значение в свойствах...
. Т.е. ДО формирования запроса задания SQL текста). При формировании запроса добавляется второй с таким же именем. (это особенность ADO). В задании используется первый. А в запросе применяется второй (пустой).

Убери из свойств и задавай значения ПОСЛЕ формирования запроса .
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 25.04.2011 в 09:28.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выполняется запрос к БД в Joomla Arassir WordPress и другие CMS 3 14.04.2011 16:03
ADO-MS SQL Не выполняется запрос SELECT Dj_SheLL Помощь студентам 10 23.11.2010 14:17
Не выполняется HTTP запрос Kreadlling Win Api 1 03.05.2010 20:40
Не выполняется запрос в SQL ivp88 БД в Delphi 5 17.01.2008 10:30
Почему не выполняется запрос? chingiz БД в Delphi 2 27.05.2007 21:56