Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.02.2013, 21:51
toddams toddams вне форума
Прохожий
 
Регистрация: 23.01.2013
Сообщения: 10
Репутация: 10
По умолчанию ADO + parameters

Код:
with form1.ADOQuery1 do begin
      SQL.Clear;
      SQL.Add('IF EXISTS(SELECT * FROM sklad WHERE detail='+quotedstr(sname.text)+') BEGIN');
      SQL.Add('UPDATE sklad SET (ostatok=ostatok+:ost) and (prihod=prihod+:ost) WHERE detail='+quotedstr(sname.text)+'');
      SQL.Add('END#13#10 ELSE BEGIN');
      SQL.Add('INSERT INTO sklad(detail,mark,prihod,rashod,ostatok,costuah,costusd)');
      SQL.Add('VALUES(:det,:mar,:ost,0 ,:ost,:co1,:co2)');
        Parameters.Refresh;
        Parameters.ParamByName('det').value:=Sname.text;
        Parameters.ParamByName('mar').value:=Smark.items[smark.itemindex];
        Parameters.ParamByName('ost').value:=Snum.value;
        Parameters.ParamByName('co1').value:=Scost.text;
        Parameters.ParamByName('co2').value:=Scost2.text;
      ExecSQL;
      SQL.Clear;
      SQL.Add('SELECT * FROM sklad');
      Active:=true;

Выдает ошибку Parameter 'det' not found...Не понимаю в чем проблема, помогите

Код:
  SQL.Add('INSERT INTO sklad(detail)');
      SQL.Add('VALUES(:det)'); 


Так тоже не работает =/

Последний раз редактировалось toddams, 05.02.2013 в 22:05.
Ответить с цитированием
  #2  
Старый 06.02.2013, 12:21
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

не знаю, что у вас за SQL-сервер, но думаю, что вместо:
Код:
SQL.Add('END#13#10 ELSE BEGIN');
надо писать:
Код:
SQL.Add('END'#13#10' ELSE BEGIN');
Да и использование одноименного параметра в разных местах запроса тоже может приводить к неожиданным ошибкам.
И потом, если вы начинаете sql-блок через BEGIN то и закрывать его тоже где-то надо через END
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 06.02.2013 в 12:24.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:52.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter