![]() |
|
|
![]()
|
|
| nadge |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 12.11.2004 Репутация: 1 Всего: 1 |
Здравствуйте!
Есть форма, на ней TDataSource, TDBNavigator и TDBGrid. (Непосредственно с базой работа идет через компонент AnyDAC TADTable, но, как я понял, для моего вопроса это не важно.) Пользователь нажимает кнопку Insert и заполняет в гриде не все поля. Так вот, программа (как я понял, компонент DataSource) при сохранении такой записи на это ругается, требует заполнить пустое поле. Как этого избежать? Т.е. как сделать так, чтобы некоторые поля записи могли оставаться пустыми? З.Ы. Я чайник |
|||
|
||||
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
есть предложение - при создании твой бд, поля которое не обязательно для заполнения 1 вариант - сделать поле default, и оно будет заполняться само 2 выриант - программно заполнять скрытно от пользователя, например NULL заносить, только чтобы поле не имело ограничение - NOT NULL. -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
| nadge |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 12.11.2004 Репутация: 1 Всего: 1 |
1. всмысле на сервере это указать? можно подробнее?
2. нежелательно - т.к. у меня данные вводятся/выводятся через связку Table-DataSource-DBGrid, и хотелось бы чтобы именно так и было. Оставлю на крайний случай. Мне кажется (обычно есть нечто подобное), что в используемых классах БД должна быть какая-то переменная, в которой указывается, какие поля можно оставить пустыми. Сам сервер такую возможность предоставляет. Table - тоже (при вставке с помощью InsertRecord).Значит дело либо в DBGrid, либо, скорее всего, в DataSource. Вот только найти, как там это исправить, я не могу. Ну не взламывать же компонент З.Ы. Сервер - mysql, если что. Это сообщение отредактировал(а) nadge - 10.12.2006, 00:26 |
|||
|
||||
| TaNK |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
например в FireBird создается следующим образом:
а как в mySQL я точно не знаю, но думаю ты разберешься! -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
||||
|
|||||
| nadge |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 12.11.2004 Репутация: 1 Всего: 1 |
TaNK, спасибо за отзыв, но проблема не в сервере.
Я тут вот что попробовал: вместо таблицы стал использовать ClientDataSet и сохранение/загрузку в/из XML. Написал:
Теперь в той же ситуации (добавление запси) выдается "Field value required", а было "Field '<имя столбца>' must have a value". Т.е. как я понял: 1. Проверок несколько (ну блин, поймаю разработчика дельфи, дам в чан). 2. Сама БД тут вообще не при чем. При чем класс TDataSet или какой-то производный от него (или, наоборот, родительский). З.Ы. Ну неужели никому не приходилось оперировать с записями, имеющими пустые поля? Поверить в это не могу. З.З.Ы. Придется брать в руки дизассемблер. Этот путь быстрее - я убедился. |
|||
|
||||
| nadge |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 12.11.2004 Репутация: 1 Всего: 1 |
Разобрался. Проблема таки в сервере. В настройках полей там было указано NOT NULL, надо было эту опцию снять.
З.Ы. Однако замечу, что вставка методом InsertRecord прекрасно работала и раньше. Т.е. сам сервер-то не ограничивает поьзователя Это сообщение отредактировал(а) nadge - 10.12.2006, 20:24 |
|||
|
||||
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
ну вот и замечательно, что хоть как то смог помочь! -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |