Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Использование параметров в ADOQuery

27K
13 мая 2007 года
Kanareika
4 / / 13.05.2007
Всем привет!!!!
Проблема такая: есть БД с таблицей, в которой 6 полей. В Дельфи я создаю запрос на добавление новой записи в эту таблицу. В БД первое поле - ключ, он присваивается автоматически, когда в таблицу добавляешь запись. И последнее поле в таблице должно быть Null. Как это отобразить в Дельфи при создании запроса????
[COLOR=red]ADOQuery1.Parameters[0].Value:= ???????????;[/COLOR]
ADOQuery1.Parameters[1].Value:= edit2.text;
ADOQuery1.Parameters[2].Value:= edit3.text;
ADOQuery1.Parameters[3].Value:= edit4.text;
ADOQuery1.Parameters[4].Value:= edit5.text;
[COLOR=red]ADOQuery1.Parameters[5].Value:= NULL;[/COLOR]
ADOQuery1.execsql;
Пожалуйста, помогите!!!!
7.8K
13 мая 2007 года
Hrew
185 / / 23.04.2007
Прописывайте условия NULL сразу в запросе, раз заранее их знаете.
Запрос:
 
Код:
query:="insert into table1 values(NULL, :param1, :param2, :param3, :param4, NULL)";

Присвоение значений параметрам:
 
Код:
ADOQuery1.SQL.Text:=query;
ADOQuery1.Parameters[0].Value:= edit2.text;
ADOQuery1.Parameters[1].Value:= edit3.text;
ADOQuery1.Parameters[2].Value:= edit4.text;
ADOQuery1.Parameters[3].Value:= edit5.text;
ADOQuery1.ExecSQL;

Если работает автоинкремент для первого поля и разрешено значение NULL для последнего, то такой запрос должен работать.
263
13 мая 2007 года
koltaviy
816 / / 16.12.2004
Цитата: Hrew
Прописывайте условия NULL сразу в запросе, раз заранее их знаете.
Запрос:
 
Код:
query:="insert into table1 values(NULL, :param1, :param2, :param3, :param4, NULL)";

Присвоение значений параметрам:
 
Код:
ADOQuery1.SQL.Text:=query;
ADOQuery1.Parameters[0].Value:= edit2.text;
ADOQuery1.Parameters[1].Value:= edit3.text;
ADOQuery1.Parameters[2].Value:= edit4.text;
ADOQuery1.Parameters[3].Value:= edit5.text;
ADOQuery1.ExecSQL;

Если работает автоинкремент для первого поля и разрешено значение NULL для последнего, то такой запрос должен работать.


Если есть поле поле автоинкеремент, то его вообще не надо трогать - БД сама его обработает!! И лучше использовать развернутый синтаксис запроса:

 
Код:
INSERT INTO Table1 (Field2, Field3, Field5, Field4, Field6) VALUES(:param2, :param3, :param5, :param4, NULL);
..
27K
14 мая 2007 года
Kanareika
4 / / 13.05.2007
Спасибо огромное!!! :) :) :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог