Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.30;
Скачать: CL | DM;

Вниз

Несколько уникальных индексов в TClientDataSet   Найти похожие ветки 

 
arbiter ©   (2003-05-28 17:57) [0]

Допустим у меня есть клиентский датасет, в нём есть поле id. Для того чтобы пользователь не мог добавить несколько записей с одинаковым id, я делаю уникальный индекс по этому полю, и присваиваю его имя свойству IndexName.

Но как мне быть в том случае если в придачу к уникальному Id у меня также должен быть уникален Name? Два индекса не могут быть активны одновременно.


 
arbiter ©   (2003-05-29 15:15) [1]

повторяем вопросец


 
Соловьев ©   (2003-05-29 15:19) [2]


> Для того чтобы пользователь не мог добавить несколько записей
> с одинаковым id, я делаю уникальный индекс по этому полю,
> и присваиваю его имя свойству IndexName.

СУБД?
зачем пользователь лезет в ключевые поля?


 
arbiter ©   (2003-05-29 16:11) [3]

Это не ключевые поля. Таким образом я обеспечивал уникальность значения в пределах поля.

База у меня локальная, построенна только на клиентских датасетах.


 
arbiter ©   (2003-05-30 14:55) [4]

up


 
arbiter ©   (2003-06-03 17:36) [5]

и снова up
такое чуство, что никто с клиентскими датасетами не работает


 
Digitman ©   (2003-06-03 17:49) [6]

а что ты подразумаеваешь под "активностью" индекса ?
видимо - только тек.порядок сортировки !

уник.индекс, если он есть (в дан.случае), всегда будет контролировать накладываемые им ограничения, вне зависимости от зн-я св-ва IndexName


 
arbiter ©   (2003-06-03 18:19) [7]

В том то и дело что когда у меня есть два уникальных индекса, "Key violation." бросает только тот который установлен в IndexName. А остальные игнорируются, и я могу запросто добавить две записи, к примеру, с одинаковым именем.


 
Romkin ©   (2003-06-03 18:40) [8]

Игнорируются и будут игнорироваться, ничего с этим не сделаешь.


 
arbiter ©   (2003-06-03 19:51) [9]

А каким образом можно реализовать проверку поля на уникальность, не прибегая к Locate?


 
DreamDesire ©   (2003-06-04 09:38) [10]

Или я не въехал или, насколько я понял, ты длаешь индекс программно, а если так, то почему бы прямо на базу не повесить?


 
arbiter ©   (2003-06-04 12:59) [11]

Именно так, я делаю индекс программно, потому что у меня нет базы. Вообще. А есть набор клиентских датасетов, которые приложение считает базой (они сохраняют результаты своей работы в XML).


 
arbiter ©   (2003-06-04 16:03) [12]

Если кому интерестно, я нашёл решение. Использовать AddIndex, поскольку те индексы которые определены в IndexDefs создаются только в момент использования.

То есть midas.dll поддерживает несколько уникальных индексов, только их нужно создать, что я и делаю с помощью AddIndex.

А вообще, если честно, активность ответов удручает :(



Страницы: 1 вся ветка

Текущий архив: 2003.06.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
14-97789
Silentium!
2003-06-14 14:05
2003.06.30
для локальной сети....


3-97542
Valet
2003-06-06 16:07
2003.06.30
При попытке Refresh таблицы получаю ошибку.


1-97658
Silver_
2003-06-17 09:35
2003.06.30
Почему QuickReport.QRExpr не видит DataSet из DataModule


11-97569
Vox
2002-10-09 18:48
2003.06.30
Popup Menu


6-97769
Nigger
2003-04-25 02:25
2003.06.30
WInSock API???