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

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

Что неправильно в запросе? [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)';


Наверх

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