![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтрация записей ADOTable [D7, MSSQL]
Edd © (2006-12-16 19:31:00)Доброго времени суток!
Мастера, подскажите, ранее писал через ClientDataSet трёхзвенки - фильтрация проходила без вопросов. Сейчас пишу для MS SQL сервера доступ конечно через ADO.
фильтрация для подчиненных таблиц невозможна. возникает ошибка - "...Filter property cannot be used for detail tables..." уже читал по этому поводу какие-то форумы. Но нигде ничего конкретного не сказано как обойти эту проблему.
если надо использовать ADOQuery, то подскажите код вместе с запросом, подробно.
Спасибо!
Edd (2006-12-16 21:48:00) [21]а там надо будет обрывать связь или нет?
Anatoly Podgoretsky (2006-12-16 21:45:00) [22]> Edd (16.12.2006 21:43:10) [10]
TAdoDataset
Edd (2006-12-16 21:43:00) [23]
> Выбрось ADOTable - использование ни чем не обосновано.
а вместо этого к таблицам чем подключаться и перемещаться по набору? надо чтобы налицо в гридах был фатк связи один ко многим...
какая альтернатива тэйблам?
Anatoly Podgoretsky (2006-12-16 21:35:00) [24]> Edd (16.12.2006 21:31:08) [8]
Выбрось ADOTable - использование ни чем не обосновано.
Edd (2006-12-16 21:31:00) [25]для связи с севрером - ADOConnection
в свойствах у ADOTable детальной таблицы указано:
IndexFiledName
MasterFields
MasterSource
и TableName
изначально в MS SQL сделал связь между главной и детально один ко многим.
а в делфи с помощью вкладки диграммы протянул связь между табличками, и вышеуказанные свойства заполнились автоматически
MsGuns (2006-12-16 20:51:00) [26]Какие компоненты используете для извлечения данных с сервера и как установили "связующие" свойства ?
Anatoly Podgoretsky (2006-12-16 20:45:00) [27]> Edd (16.12.2006 20:33:05) [5]
Убери прямую связь, и делай ее в OnAfterScroll если речь идет о гридах.
Edd (2006-12-16 20:33:00) [28]
> Побороть проблему можно, избавившись от прямой связки Master-
> Detail, заменив ее "ручным" переоткрытием детального запроса
> при изменении текущей записи в Главной.
вот в том-то и дело, я не в курсе, подскажите пожалуйста как это делается поподробнее?
MsGuns (2006-12-16 20:26:00) [29]Дело не в том, что Вы "переехали" с клиентского на адошный компонент, а в том, что, очевидно, пытаетесть применить фильтр к таблице, которая связана как дочерняя с другой отношением Master-Detail .
Побороть проблему можно, избавившись от прямой связки Master-Detail, заменив ее "ручным" переоткрытием детального запроса при изменении текущей записи в Главной.
Anatoly Podgoretsky (2006-12-16 20:25:00) [30]> Edd (16.12.2006 20:12:02) [2]
> ADOConnection DataSet ADOTable ADOQuery
Два последних зря используешь.
Edd (2006-12-16 20:12:00) [31]а я щас не трёхзвенку делаю... Поэтому компоненты юзаю ADOConnection DataSet ADOTable ADOQuery
уже соединение между клиентским приложением и сервером настроил, не хотелось бы компонеты менять..
PS а там таких проблем с фильтром не будет?
там чтоб к к серверу сконнектиться нужно ведь указать в RDSConnection
два свойства serverName и ComputerName?
sniknik (2006-12-16 19:39:00) [32]> если надо использовать ADOQuery
использовать надо ADOConnection, ADODataSet и ADOCommand (ну и можно RDSConnection если трехзвенку исключительно на ADO делать), остальное надо выкинуть и забыть как страшный сон, описания в книжках буде встретятся пропускать не читая.
> то подскажите код вместе с запросом, подробно.
подробнее чем в BOL не бывает, а оно у тебя под рукой, раз уж MSSQL стоит.