![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Индексы
Фагот © (2003-09-15 10:26:00)
Здравствуйте!
Вопрос такой. В ИБ таблице я строю вторичный индекс по Date-полю. В IBTable устанавливаю связь Master-Detail по полю Integer. В подчинённой таблице имя индексного воля автоматически ставится поле, по которому идёт мастер-детайл. При попытке поменять индексное поле выдаётся ошибка "Dinamic SQL Error.
SQL Error Code=-303 conversion error from string "1". Связь мастер-детайл при этом теряется... Может нужно мастер-детайлное поле включить в общий индекс с датой?
Фагот (2003-09-15 16:08:00) [1]
> sewer1
Спасибо! Просто и понятно, а главное, в точку!
sewer1 (2003-09-15 16:01:00) [2]
Так индек создавай не по полю Б, по по полям АБ. Именно в такой последовательности. Когда индекс сделан толкьо по полю Б, то таблица сортируется именно по нему и естесвтенно вся связь поля А теряется.
stud (2003-09-15 15:01:00) [3]
точно, точно, лучше использовать датасет
Deniz (2003-09-15 14:53:00) [4]
Нет в IBQuery > requestlive
stud (2003-09-15 14:44:00) [5]
requestlive=true
и все нормально.
хотя подумай, действительно ли нужно редактировать именно в гриде? может лучше отдельную формочку для ввода, или скажем панель под гридом - и безопасней и мороки меньше
Deniz (2003-09-15 14:26:00) [6]
А ты попробуй проставь все св-ва, которые я перечислял, мож получится?
Фагот (2003-09-15 13:40:00) [7]
> переводиш квери в кэшированные изменения, редактируеш грид,
> когда надоело вызываеш, applyupdates
Но когда грид связан с квери он не даёет редактировать грид!
stud (2003-09-15 13:21:00) [8]
переводиш квери в кэшированные изменения, редактируеш грид, когда надоело вызываеш, applyupdates
Фагот (2003-09-15 13:15:00) [9]
> же легко все редактировать в Grid"е
Отсюда поподробнее..., если можно...
Deniz (2003-09-15 12:30:00) [10]
Не мучся с IBTable. Через IBQuery можно так же легко все редактировать в Grid"е, например CachedUpdates + UpdateObject. Разница только в том, что еще придется в некоторых местах написать IBQuery1.ApplyUpdates или IBQuery1.CancelUpdates по необходимости.
stud (2003-09-15 12:13:00) [11]
ф фильтры пробовал?
Фагот (2003-09-15 12:03:00) [12]
> stud
Ещё раз объясню - связь мастер-детайл идёт по полю "А". Сортировка в таблице должна быть по полю "Б". При установке мас-дет. по плю "А" индексное поле автоматически ставится "А", при попытке выставить индексное поле "Б" выдаётся ошибка (см. выше)
stud (2003-09-15 11:24:00) [13]
че-то я не понял, индексное поле зачем менять?
или какие действия ты выполняеш?
Фагот (2003-09-15 11:22:00) [14]
Создеал... Ничего...
stud (2003-09-15 10:44:00) [15]
так лучше создай индексы на поля, по кторорым связь строится.
Фагот (2003-09-15 10:37:00) [16]
> кажется в тейблах иастер-детайл строится по существующим
> индексам
На мастер-детайлное поле индекса нет, но связь строится. Наоборот, на то имя, на которое нужна сортировка индекс есть.
Фагот (2003-09-15 10:35:00) [17]
По поводу IBQuery. Мне просто необходимо вносить изменения прямо в гриде. База небольшая, поэтому торможение при использовании Тэйбла не будет. При использовании IBQuery придётся вносить ещё несколько форм редактирования, а это очень неудобно. Может есть решение, которого я не знаю?
stud (2003-09-15 10:32:00) [18]
кажется в тейблах иастер-детайл строится по существующим индексам. а почему не использовать для этой цели ibquery??