![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Update в ADO
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 не заносятся?
Это вопрос ? Тогда - да. Т.к. такого поля нет...:)