Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];

Вниз

Несколько уникальных индексов в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
14-97857
leseal1
2003-06-13 04:47
2003.06.30
Компонент для создания *.gif на кнопке


8-97751
CrowD
2003-03-19 12:10
2003.06.30
Проблема с выводом спрайтов?!


3-97475
Goga
2003-06-04 14:14
2003.06.30
Событие WillChangeField


1-97639
Бородин М
2003-06-19 22:59
2003.06.30
Очистка массива


14-97880
levova
2003-04-12 12:06
2003.06.30
Как использовать компонент TTelefoon?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский