Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Update в ADO


Страницы:   1 2

Andy ©   (2004-08-02 16:57:00) 

Подскажите, плиз, что не так делаю при передаче параметров?

with ADOSQL do
      begin
        with SQL do begin
               Clear;
               Add('UPDATE cards');
               Add('SET numProd = :myNum ');
               Add('WHERE (id between :numFisrt and :numLast); ');
         end;
         Parameters.ParamByName('myNum').Value := myNum;
         Parameters.ParamByName('numFirst').Value := numBegin;
         Parameters.ParamByName('numLast').Value := numEnd;
         try
            ExecSQL;
         except
            on E:Exception do ShowMessage(E.Message);
         end;
       end;
При выполнении не выдается никаких ошибок, но данные в поле num Seller не заносятся? Хотя если простой запрос без параметров, то отлично выполнятеся.


BoxTer   (2004-08-03 06:28:00) [21]

а вот здеся точка_с_запятой не лишняя?
Add('WHERE (id between :numFisrt and :numLast) ; ');


сергей1   (2004-08-02 20:26:00) [22]

а на кой вообще делать так ? Запускай вот это :

procedure TForm1.Button2Click(Sender: TObject);
var mynum, numfirst, numlast:string;
begin
mynum:='10';
numfirst:='20';
numlast:='30';
form1.ADOQuery1.SQL.Text:='update  "Cards" set numProd = '
+quotedstr(mynum)+' where id between '+quotedstr(numfirst)
+' and ' +quotedstr(numlast);
try
form1.ADOQuery1.ExecSQL;
except on E:exception do
begin
 if strpos(pchar(E.Message),'PRIMARY')<>nil then
  begin
   showmessage('Нарушение первичного ключа !');
  end
end;
end;
end;

в качестве бонуса показана обработка ошибки (первичного ключа, если конечно numProd им является, так же можно обработать любую ошибку), зачем выводить
в showmessage E.message, там все на английском и юзеры начинают нервничать.
У меня вся база построена на таких запросах и все отлично работает, а эта передача параметров, как у тебя, только путает код.


Johnmen   (2004-08-02 17:55:00) [23]

Значит ни одна запись не удовлетворяет условию...


Andy   (2004-08-02 17:18:00) [24]

>> ... но данные в поле num Seller не заносятся?
Сори, в numProd естественно...


Johnmen   (2004-08-02 17:15:00) [25]

>... но данные в поле num Seller не заносятся?

Это вопрос ? Тогда - да. Т.к. такого поля нет...:)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо