![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что неправильно в запросе? [D7, 95/98]
dera © (2006-04-14 18:44:00)Query1.ParamByName('_initcost').AsFloat:=strtofloat(Edit1.Text);
Query1.Close;
Query1.SQL.Text:='INSERT INTO inom(id,initcost) VALUES ('+Edit2.Text+', '+:_initcost+')';
Query1.ExecSQL;
ЮЮ (2006-04-17 03:59:00) [1]
> получается, нельзя использовать в одном запросе и с параметрами
> и без?
Можно, но > параметр должен быть вписан в текст запроса
Query1.SQL.Text:=
' INSERT INTO inom(id,initcost) VALUES (' + Edit2.Text+ ' , :_initcost)';
а у тебяQuery1.SQL.Text:=' INSERT INTO inom(id,initcost) VALUES ('+Edit2.Text+' ,'+ :_initcost+' )';
Такое даже компиляцию не пройдет.
> Т.е. надо писать так?
Так гораздо лучше.
dera (2006-04-14 18:55:00) [2]>2. параметр должен быть вписан в текст запроса, а не плюсоваться как строка
получается, нельзя использовать в одном запросе и с параметрами и без? Т.е. надо писать так?
Query1.Close;
Query1.SQL.Text:='INSERT INTO inom(id,initcost) VALUES (:id,:_initcost)';
Query1.ParamByName('_initcost').AsFloat:=strtofloat(Edit1.Text);
Query1.ParamByName('_id').AsFloat:=strtofloat(Edit2.Text);
Query1.ExecSQL;
Desdechado (2006-04-14 18:49:00) [3]1. параметры присваивают ПОСЛЕ указания текста запроса, т.к. при указании текста список параметров автоматически перестраивается
2. параметр должен быть вписан в текст запроса, а не плюсоваться как строка
Query1.SQL.Text:='INSERT INTO inom(initcost) VALUES (:_initcost)';