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

Вниз

Индексы   Найти похожие ветки 

 
Фагот ©   (2003-09-15 10:26) [0]

Здравствуйте!
Вопрос такой. В ИБ таблице я строю вторичный индекс по Date-полю. В IBTable устанавливаю связь Master-Detail по полю Integer. В подчинённой таблице имя индексного воля автоматически ставится поле, по которому идёт мастер-детайл. При попытке поменять индексное поле выдаётся ошибка "Dinamic SQL Error.
SQL Error Code=-303 conversion error from string "1". Связь мастер-детайл при этом теряется... Может нужно мастер-детайлное поле включить в общий индекс с датой?


 
stud ©   (2003-09-15 10:32) [1]

кажется в тейблах иастер-детайл строится по существующим индексам. а почему не использовать для этой цели ibquery??


 
Фагот ©   (2003-09-15 10:35) [2]

По поводу IBQuery. Мне просто необходимо вносить изменения прямо в гриде. База небольшая, поэтому торможение при использовании Тэйбла не будет. При использовании IBQuery придётся вносить ещё несколько форм редактирования, а это очень неудобно. Может есть решение, которого я не знаю?


 
Фагот ©   (2003-09-15 10:37) [3]

> кажется в тейблах иастер-детайл строится по существующим
> индексам


На мастер-детайлное поле индекса нет, но связь строится. Наоборот, на то имя, на которое нужна сортировка индекс есть.


 
stud ©   (2003-09-15 10:44) [4]

так лучше создай индексы на поля, по кторорым связь строится.


 
Фагот ©   (2003-09-15 11:22) [5]

Создеал... Ничего...


 
stud ©   (2003-09-15 11:24) [6]

че-то я не понял, индексное поле зачем менять?
или какие действия ты выполняеш?


 
Фагот ©   (2003-09-15 12:03) [7]


> stud

Ещё раз объясню - связь мастер-детайл идёт по полю "А". Сортировка в таблице должна быть по полю "Б". При установке мас-дет. по плю "А" индексное поле автоматически ставится "А", при попытке выставить индексное поле "Б" выдаётся ошибка (см. выше)


 
stud ©   (2003-09-15 12:13) [8]

ф фильтры пробовал?


 
Deniz ©   (2003-09-15 12:30) [9]

Не мучся с IBTable. Через IBQuery можно так же легко все редактировать в Grid"е, например CachedUpdates + UpdateObject. Разница только в том, что еще придется в некоторых местах написать IBQuery1.ApplyUpdates или IBQuery1.CancelUpdates по необходимости.


 
Фагот ©   (2003-09-15 13:15) [10]


> же легко все редактировать в Grid"е

Отсюда поподробнее..., если можно...


 
stud ©   (2003-09-15 13:21) [11]

переводиш квери в кэшированные изменения, редактируеш грид, когда надоело вызываеш, applyupdates


 
Фагот ©   (2003-09-15 13:40) [12]


> переводиш квери в кэшированные изменения, редактируеш грид,
> когда надоело вызываеш, applyupdates

Но когда грид связан с квери он не даёет редактировать грид!


 
Deniz ©   (2003-09-15 14:26) [13]

А ты попробуй проставь все св-ва, которые я перечислял, мож получится?


 
stud ©   (2003-09-15 14:44) [14]

requestlive=true
и все нормально.
хотя подумай, действительно ли нужно редактировать именно в гриде? может лучше отдельную формочку для ввода, или скажем панель под гридом - и безопасней и мороки меньше


 
Deniz ©   (2003-09-15 14:53) [15]

Нет в IBQuery > requestlive


 
stud ©   (2003-09-15 15:01) [16]

точно, точно, лучше использовать датасет


 
sewer1   (2003-09-15 16:01) [17]

Так индек создавай не по полю Б, по по полям АБ. Именно в такой последовательности. Когда индекс сделан толкьо по полю Б, то таблица сортируется именно по нему и естесвтенно вся связь поля А теряется.


 
Фагот ©   (2003-09-15 16:08) [18]


> sewer1

Спасибо! Просто и понятно, а главное, в точку!



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

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

Наверх




Память: 0.5 MB
Время: 0.022 c
14-18560
jack128
2003-09-19 01:36
2003.10.06
Именинники 19 сентября


1-18381
lak
2003-09-22 15:48
2003.10.06
вычисление выражений в префиксной записи


1-18330
Eugene_
2003-09-22 16:38
2003.10.06
Запись массива на диск


3-18265
_Alexander_
2003-09-15 17:18
2003.10.06
Исходники ClientDataSet


3-18272
Юля П
2003-09-15 10:45
2003.10.06
SQL запрос