![]() |
| ||
|
|
Новости |
Поиск |
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-17 16:20:00) [1]спасибо большое! теперь всё гораздо яснее
Anatoly Podgoretsky (2006-12-16 23:24:00) [2]> sniknik (16.12.2006 23:22:30) [30]
Пускай для начала связь заставит работать.
sniknik (2006-12-16 23:22:00) [3]хотя нет, не все. т.к. ты пытаешься установить фильтр на подчиненную таблицу а это не разрешено то его условие надо дописывать туда же к запросу, т.е. добавить AND "условие из фильтра". условие тоже неизвестное т.что добавляй его сам, сказанного вполне достаточно.
Anatoly Podgoretsky (2006-12-16 23:20:00) [4]> Anatoly Podgoretsky (16.12.2006 23:18:28) [28]
Поправка, смотри код [27]
Anatoly Podgoretsky (2006-12-16 23:18:00) [5]> Edd (16.12.2006 23:08:26) [26]
Where GID=:GID
sniknik (2006-12-16 23:13:00) [6]SELECT * FROM дочерняя WHERE groupkod=:gid
у этого датасета DataSource установить указывающий на основной. это все.
Edd (2006-12-16 23:08:00) [7]Главная таблица - три поля
gid - ключевое
group - текстовое
дочерняя
mid - ключевое
groupkod - поле по которому таблица связана с главное с полем gid связью
остальные текстовые поля просто для инфы..
как должен в таком случае корректно выглядеть запрос с параметрами?
(насколько я понимаю он должен быть во втором dataset для дочерней таблицы)
Anatoly Podgoretsky (2006-12-16 23:05:00) [8]> Edd (16.12.2006 22:51:22) [22]
Заполнить их, в справке есть даже пример, ну не копировать же его сюда?
Anatoly Podgoretsky (2006-12-16 23:04:00) [9]> Edd (16.12.2006 22:28:20) [20]
Во втором не хватает части WHERE и MasterSource := DataSource1; + ADOTable2.MasterField := ...
sniknik (2006-12-16 23:01:00) [10]> подскажи какие параметры во втором запросе написать надо и как
а я знаю?... твои таблицы, твоя структура, твои поля, твои желания по их связи... ничего не озвучено. а я должен знать что тебе там написать надо.
> че теперь делать (по порядку)?
можно взять книжку и почитать... или F1 нажать и там почитать, пример оттуда скопировать.
Edd (2006-12-16 22:51:00) [11]подскажи какие параметры во втором запросе написать надо и как, а то я не силен в этом...
я окончательно запутался как свойства DataSource распределить..
значит есть у нас datasetMaster datasetDetails далее dataSourseMaster dataSourceDetails и два грида
че теперь делать (по порядку)?
sniknik (2006-12-16 22:41:00) [12]> чего не хватает для полного счастья?:)
параметров/а связи во втором запросе, ну и еще указания DataSource у второго дататсета указывающего на первый. (у таблиц то MasterSource указывал, а тут?)
Edd (2006-12-16 22:28:00) [13]к одному DataSet сделал свойство CommandText:=select * from Master
а ко второму DataSet: select * from Details
компонетам DataSource подключил соответсвующие DataSet
а в гридах указал нужные dataSource
чего не хватает для полного счастья?:)
Anatoly Podgoretsky (2006-12-16 22:21:00) [14]> Edd (16.12.2006 22:15:18) [18]
А что сделал?
Edd (2006-12-16 22:15:00) [15]а вот я щас попробовал, перехожу по записям в гриде главной таблицы... а в дочернем гриде ничего не меняется, что надо сделать?
Anatoly Podgoretsky (2006-12-16 22:06:00) [16]> Edd (16.12.2006 22:02:16) [16]
Точно также и с TAdoDataset только более гибко.
Edd (2006-12-16 22:02:00) [17]понял спасибо, буду разбираться...
только удобство было с тэйблами в том что переходишь в гриде на следующую запись по главной таблице и в детальной тоже обновляется грид (показываются соответсвующие записи к главной)
а здесь надо вручную это прописывать?
Anatoly Podgoretsky (2006-12-16 21:53:00) [18]> Edd (16.12.2006 21:52:14) [14]
Заполнить данное свойство
Читать про SQL
Edd (2006-12-16 21:52:00) [19]никогда его не пользовал еще.. как настроить правильно? Там возникает ошибка Missing CommanText property..
Anatoly Podgoretsky (2006-12-16 21:52:00) [20]> Edd (16.12.2006 21:48:12) [12]
Дело вкуса, но на самом деле связь там делается с помощью контролируемого запроса, можешь делать его любым