![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Значение поля - только определенные величины
lookin © (2006-09-10 01:42:00)Как сделать так, чтобы в данном поле БД можно было вводить лишь определенные значения? Например, есть поле типа string, но значение этого поля может принимать лишь значения 'first', 'second' и 'three'. Следует ли копать в сторону Lookup****?
Заранее благодарю за ответ.
lookin (2006-09-14 15:43:00) [1]Всем спасибо, я решил обе проблемы.
Shaman_ (2006-09-13 19:18:00) [2]ANB ©
согласен, стормозил немного :)
ANB (2006-09-13 19:09:00) [3]
> Да нет, лучше именно на TTable.OnBeforeEdit и TTable.OnBeforeInsert
И каким образом эти события помогут ?
Проверял хоть, когда они срабатывают ?
term1t (2006-09-13 18:51:00) [4]может и не в ту степь, но...
ограничений никаких нельзя на поля наложить? в Оракле есть Constraint-ы..
что-от типа
Alter table Table_name add
(
constraint Constraint_name CHECK (field_name IN ('value1', 'value2'...))
)
Shaman_ (2006-09-11 17:04:00) [5]ANB © (11.09.06 15:36) [11]
Да нет, лучше именно на TTable.OnBeforeEdit и TTable.OnBeforeInsert это не даст возможность указать недопустимых значений еще на этапе редактирования записи как ручного, так и через DB объекты и предотвратит нахождение временных неверных записей в наборе данных
lookin (2006-09-11 16:57:00) [6][9] evvcom © (11.09.06 14:22)
>>можешь на 0/1 и т.д. При отображении же на клиенте (в гриде) вместо 0 и
>>1 можешь подставить свои м/ж.
Спасибо, не пришел такой вариант в голову.
ANB (2006-09-11 15:36:00) [7]
> TTable.OnBeforeEdit
> TTable.OnBeforeInsert
Эта. Эти события генерятся в ответ на Edit или Insert. Т.е. еще до помещения значений в поля. Тут уж лучше на Post вешать.
Shaman_ (2006-09-11 15:33:00) [8]Может я не совсем понял сабж.
Почему бы не осуществлять контроль вносимых изменений при Редактировании/Вставки записей?
TTable.OnBeforeEdit
TTable.OnBeforeInsert
evvcom (2006-09-11 14:22:00) [9]> [8] Shaman_ © (10.09.06 19:30)
Какой MySQL, если ttParadox?
> [7] lookin © (10.09.06 02:55)
> не исключено, что я просто смешиваю и путаю понятия
Ну так книжку почитай.
> [6] lookin © (10.09.06 02:55)
> я мог присваивать лишь эти значения (т.е. "м" и "ж").
В DataBase Desktop при создании/модификации таблицы есть возможность создать/изменить некоторые свойства проверки ограничений. Можешь проверять на "мы" и "жо" (first/second), а можешь на 0/1 и т.д. При отображении же на клиенте (в гриде) вместо 0 и 1 можешь подставить свои м/ж.
Shaman_ (2006-09-10 19:30:00) [10]Если СУБД позволяет, можно использовать перечисляемый тип. Допустим enum поля в MySQL
lookin (2006-09-10 02:55:00) [11]Еще добавлю, что не исключено, что я просто смешиваю и путаю понятия. Потому и путано объясняю, и потому и может возникнуть мысль, что подколка...
lookin (2006-09-10 02:55:00) [12][5] Германн © (10.09.06 02:34)
>>Подколка?
Я бы не стал так подкалывать))
Я не знаю, как влияет Table.TableType на поведение таблицы, но у меня стоит ttParadox.
Данные ввожу в связке TTable-TDataSource-TDBGrid
Совершенно конкретно все выглядит так. Я генерирую табличные данные (13 полей), из них первое = Required = номер, а все остальные - строки. Но, например, поле №2 (пол) может принимать лишь два значения - "м" и "ж". Хотелось бы сделать так, чтобы при работе с таблицей (с БД) я мог присваивать лишь эти значения (т.е. "м" и "ж"). Далее, как и говорил, при работе в DBGrid новая запись не снабжается номером (который должен быть, так как Required).
Не уверен, что внятно объяснил, готов ответить шире, лишь бы были вопросы.
Германн (2006-09-10 02:34:00) [13]
> lookin © (10.09.06 02:08) [4]
>
> Толком не скажу. Стандартный TTable, тип ttParadox
>
Олег, это что? Подколка?
Разве
> тип ttParadox
не определяет всё?
Тогда уточни что есть
> чтобы в данном поле БД можно было вводить лишь определенные
> значения?
Как и в каком компоненте ты вводишь данные?
lookin (2006-09-10 02:08:00) [14]Толком не скажу. Стандартный TTable, тип ttParadox
Германн (2006-09-10 02:04:00) [15]Это вопрос про любуюБД?
lookin (2006-09-10 01:56:00) [16]Так или иначе - ткните носом, где смотреть. У меня интуиция не работает, где смотреть нужное...
lookin (2006-09-10 01:49:00) [17]И также есть вопрос по поводу поля Required. В БД первое поле (номер) является Required. Но при работе с БД, выгруженной в DBGrid, при добавлении новой записи (средствами DBGrid, иначе говоря, при нажатии DownKey при нахождении на последней существующей записи) это первое поле (номер) не заполняется. Больше того, изменения сохраняются в БД и при повторной загрузке поле "Номер" для добавленных записей не изменяется. Несмотря на Required.
Заранее спасибо.