Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Индексы


Фагот ©   (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??


Наверх

Титульная страница Поиск, карта сайта Написать письмо