![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите плиз разобраться с синтаксисом SQL запроса
IIIakal © (2009-03-24 16:14:00)Как правильно написать параметр имени столбика? В инете не нашел нужной информации...
SQL.Text:='update table1 set (:f)=:n, (:l)=:n2, gold=:n3';
Parameters.ParamByName('f').Value:='field'+inttostr(i);
Parameters.ParamByName('l').Value:='field'+inttostr(i);
Parameters.ParamByName('n').Value:=1;
Parameters.ParamByName('n2').Value:=k+1;
Parameters.ParamByName('n3').Value:=g-100;
adomagaz.ExecSQL;
sniknik (2009-03-24 17:23:00) [1]> Что-то в таком духе попробуй.
а с чего это другая форма задания параметров вдруг разрешит в них имена таблиц? ... предсказываю полный крах "проб".
и.о. Нострадамуса. :)
Ega23 (2009-03-24 17:19:00) [2]
> SQL.Text:='update table1 set (:f)=:n, (:l)=:n2, gold=:n3';
with TADODataSet do
begin
ParamCheck := False;
CommandText := 'update ? set ?=?, ?=? where ?=?';
end;
with TADODataSet.Parameters.AddParam do
begin
Name := 'TableName';
DataType := ftString;
Directoin := pdInput;
end;
with TADODataSet.Parameters.AddParam do
begin
Name := 'Field1';
DataType := ftString;
Directoin := pdInput;
end;
with TADODataSet.Parameters.AddParam do
begin
Name := 'Value1';
DataType := ftInteger;
Directoin := pdInput;
end;
with TADODataSet.Parameters.AddParam do
begin
Name := 'Field2';
DataType := ftString;
Directoin := pdInput;
end;
with TADODataSet.Parameters.AddParam do
begin
Name := 'Value2';
DataType := ftString;
Directoin := pdInput;
end;
with TADODataSet.Parameters.AddParam do
begin
Name := 'Field3';
DataType := ftString;
Directoin := pdInput;
end;
with TADODataSet.Parameters.AddParam do
begin
Name := 'Value3';
DataType := ftInteger;
Directoin := pdInput;
end;
Что-то в таком духе попробуй.
MsGuns (2009-03-24 17:03:00) [3]Можно с помощью ХП (ф-ции)
StriderMan (2009-03-24 16:41:00) [4]
+ IntToStr(1)конечно
StriderMan (2009-03-24 16:39:00) [5]собирай весь текст запроса динамически
SQL.Text:='update table1 set ' +
'field'+inttostr(i) + ' = ' + 1 +
....
IIIakal (2009-03-24 16:21:00) [6]
> В инете не нашел нужной информации...
потому видимо и не нашел:-\
спс
Amoeba (2009-03-24 16:19:00) [7]Имена полей через параметры не передаются, их нужно указывать явно.