![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при создании записи, одно из полей которой пусто. [D6, Access]
saNat © (2008-03-26 14:13:00)Доброго времени суток, Мастера (о:
Имеется таблица "Пользователи" с полями "Пользователь", "Пароль", "Тип", "Статус". Возникла проблема при добавлении записи с пустым паролем.
Делаю так:
DBQuery.Close;
DBQuery.SQL.Clear;
DBQuery.SQL.Add('Insert InTo Пользователи (Пользователь,Пароль,Тип,Статус)');
DBQuery.SQL.Add('Values (:UserName,:UserPassword,2,0)');
DBQuery.Parameters.ParseSQL(DBQuery.SQL.Text,True);
DBQuery.Parameters.ParamByName('UserName').Value:=UserName;
DBQuery.Parameters.ParamByName('UserPassword').Value:=UserPasword;
DBQuery.ExecSQL;
Получаю сообщение "...Поле 'Пользователи.Пароль' не допускает ввод пустых строк...". В БД ограничения нет. Подскажите, пожалуйста, где я не прав?
С уважением, ЕВА.
Смирнов (2008-03-27 10:03:00) [1]
> 'Пользователи.Пароль' не допускает ввод пустых строк...".
По-моему все ясно, поле должно быть или null (если допустимо) или непустая строка.
А он передает пустую строку, вот и ругается.
Ega23 (2008-03-26 14:28:00) [2]
> Первое взято из сообщения, а второе из свойств поля в Access.
Если явных ограничений на столбец нет, то вполне вероятно, что присутствует триггер, где и происходит проверка.
Reindeer Moss Eater (2008-03-26 14:28:00) [3]Подскажите, пожалуйста, где я не прав?
ShowMessage(DBQuery.Parameters.ParamByName('UserPassword').Value);
saNat (2008-03-26 14:27:00) [4]Гм... Прошу прощения, Вы совершенно правы. Обращался к старой версии БД.
Спасибо за внимание. Тему можно закрыть.
saNat (2008-03-26 14:25:00) [5]Первое взято из сообщения, а второе из свойств поля в Access.
Плохиш (2008-03-26 14:17:00) [6]
> Поле 'Пользователи.Пароль' не допускает ввод пустых строк.
> ..". В БД ограничения нет.
Какое-то из утверждений ложно.
saNat (2008-03-26 14:14:00) [7]Возможно, нужно указать:
1. Соединение устанавливаю при помощи ADO.
2. В случае, если пароль введен - операция происходит коректно.