![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько уникальных индексов в TClientDataSet [D6, D7]
arbiter © (2003-05-28 17:57:00)Допустим у меня есть клиентский датасет, в нём есть поле id. Для того чтобы пользователь не мог добавить несколько записей с одинаковым id, я делаю уникальный индекс по этому полю, и присваиваю его имя свойству IndexName.
Но как мне быть в том случае если в придачу к уникальному Id у меня также должен быть уникален Name? Два индекса не могут быть активны одновременно.
arbiter (2003-06-04 16:03:00) [1]Если кому интерестно, я нашёл решение. Использовать AddIndex, поскольку те индексы которые определены в IndexDefs создаются только в момент использования.
То есть midas.dll поддерживает несколько уникальных индексов, только их нужно создать, что я и делаю с помощью AddIndex.
А вообще, если честно, активность ответов удручает :(
arbiter (2003-06-04 12:59:00) [2]Именно так, я делаю индекс программно, потому что у меня нет базы. Вообще. А есть набор клиентских датасетов, которые приложение считает базой (они сохраняют результаты своей работы в XML).
DreamDesire (2003-06-04 09:38:00) [3]Или я не въехал или, насколько я понял, ты длаешь индекс программно, а если так, то почему бы прямо на базу не повесить?
arbiter (2003-06-03 19:51:00) [4]А каким образом можно реализовать проверку поля на уникальность, не прибегая к Locate?
Romkin (2003-06-03 18:40:00) [5]Игнорируются и будут игнорироваться, ничего с этим не сделаешь.
arbiter (2003-06-03 18:19:00) [6]В том то и дело что когда у меня есть два уникальных индекса, "Key violation." бросает только тот который установлен в IndexName. А остальные игнорируются, и я могу запросто добавить две записи, к примеру, с одинаковым именем.
Digitman (2003-06-03 17:49:00) [7]а что ты подразумаеваешь под "активностью" индекса ?
видимо - только тек.порядок сортировки !
уник.индекс, если он есть (в дан.случае), всегда будет контролировать накладываемые им ограничения, вне зависимости от зн-я св-ва IndexName
arbiter (2003-06-03 17:36:00) [8]и снова up
такое чуство, что никто с клиентскими датасетами не работает
arbiter (2003-05-30 14:55:00) [9]up
arbiter (2003-05-29 16:11:00) [10]Это не ключевые поля. Таким образом я обеспечивал уникальность значения в пределах поля.
База у меня локальная, построенна только на клиентских датасетах.
Соловьев (2003-05-29 15:19:00) [11]
> Для того чтобы пользователь не мог добавить несколько записей
> с одинаковым id, я делаю уникальный индекс по этому полю,
> и присваиваю его имя свойству IndexName.
СУБД?
зачем пользователь лезет в ключевые поля?
arbiter (2003-05-29 15:15:00) [12]повторяем вопросец