![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объясните пожалуйста, ......
Veetoyk © (2004-01-10 13:07:00)
.... что такое :nameна примере
UPDATE Anketa
SET surname = "Попов"
WHERE name = :name
HakoLamer (2004-01-10 14:57:00) [1]
спасибо
DCoder (2004-01-10 14:52:00) [2]
:name - это параметр (переменная), вместо которого будут подставляться реальные значения в ходе выполнения программы
А вот и пример
if not IBTransaction1.InTransaction
then IBTransaction1.StartTransaction;
try
{формирую некий запрос-шаблон с параметрами}
IBSQL.Close;
IBSQL.SQL.Clear;
IBSQL.SQL.Add("update "sklad" set "src_price"=:src_p, "zakup_price"=:zak_p,");
IBSQL.SQL.Add(""seller_price"=:sel_p, "sklad_price"=0, "sell_orig_ID"=:tow_kod,");
IBSQL.SQL.Add(""det_comment"=:comnt");
IBSQL.SQL.Add("where "cod"=:id");
IBSQL.Prepare;
{выполняю этот запрос в цикле, заполняя параметры данными из другой выборки}
IBQuery1.Open;
IBQuery1.first;
while not IBQuery1.EOF do begin
if qrNewPrice.Locate("sellcod",IBQuery1.Fields[1].AsString,[]) then begin
IBSQL.ParamByName("src_p").AsDouble:=qrNewPricesrcPrice.AsFloat;
IBSQL.ParamByName("zak_p").AsDouble:=qrNewPricezakPrice.AsFloat;
IBSQL.ParamByName("sel_p").AsDouble:=qrNewPricesellprice.AsFloat;
IBSQL.ParamByName("tow_kod").AsString:=qrNewPriceTOW_KOD.AsString;
IBSQL.ParamByName("comnt").AsString:=qrNewPricecomment.AsString;
IBSQL.ParamByName("id").AsInteger:=IBQuery1.Fields[0].AsInteger;
IBSQL.ExecQuery;
end
else memErrors.lines.Add(IBQuery1.Fields[1].AsString+"не обновлен");
IBQuery1.Next;
end;
if IBTransaction1.InTransaction then IBTransaction1.CommitRetaining;
finally
IBQuery1.Close;
IBDatabase1.Close;
end;