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

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

Insert into и пустой параметр [D7]


КоТ ©   (2007-02-06 14:59:00) 

Есть статический запрос:
insert into abon (dog,fam,name,grupid)
values (:dog,:fam,:name,:grupid)

и текст программы:

ADOQuery3.Parameters[0].Value:=Editdog.Text;
ADOQuery3.Parameters[1].Value:=EditFam.Text;
ADOQuery3.Parameters[2].Value:=EditIM.Text;
ADOQuery3.Parameters[3].Value:=ADOQuery1.Fields[0].AsInteger;

если введены все данные вставка строки происходит нормально, но если EditIM не содержит данных выдается ошибка "не допустимое значение точности".
Как использовать статический запрос и в котором могут быть пустые параметры?
Используется ADO через  ODBC


sniknik   (2007-02-06 16:54:00) [1]

> Clear не делает...
ADOQuery3.Parameters[2].Value:= Null;


sniknik   (2007-02-06 16:52:00) [2]

> Задал тип всем параметрам - такая же фигня ((
а без ODBC, на OLEDB, или так как в [2] сделать, что тогда? (хотя тут есть вероятность что ODBC сам пустую строку менял в null и на том и ошибка)

какого типа поля в базе? если Char то попробуй сменить на VarChar (может твой движок не поддерживает null в строках).

параметры пересоздай попробуй, удали запрос выйди из мастера и снова его туда пропиши.


Константин_   (2007-02-06 16:46:00) [3]

Clear не делает...


Desdechado   (2007-02-06 16:40:00) [4]

Clear делал?


КоТ   (2007-02-06 16:37:00) [5]

Задал тип всем параметрам - такая же фигня ((


Sergey13   (2007-02-06 15:27:00) [6]

> [4] sniknik ©   (06.02.07 15:20)
Да я уж понял, что поторопился немного и недочитал вопрос. 8-)


sniknik   (2007-02-06 15:20:00) [7]

Sergey13 ©   (06.02.07 15:04) [2]
это если нужно пустое (Null) значение в базе, если там по нему выборки... а так без разницы, ну будет пустая строка вместо Null... (хотя в ODBC как раз есть гдето (не помню драйвер) обсуждалось, пустая строка конвертировалась в Nulll хотя этого и не требовалось)


sniknik   (2007-02-06 15:15:00) [8]

> Используется ADO через  ODBC
не используй ODBC...

> Как использовать статический запрос и в котором могут быть пустые параметры?
как обычно, единственное тип параметру явно задать. (но это в принципе для статических в дизайн тайм для всех лучше делать.)


Sergey13   (2007-02-06 15:04:00) [9]

If EditIM.Text='' then ADOQuery3.Parameters[2].Clear;
Вроде так.


Johnmen   (2007-02-06 15:02:00) [10]

Не бывает такой ошибки там, где ты указываешь.
И посмотри параметры параметра name в коллекции параметров.


Наверх

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