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

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

Фильтрация записей ADOTable [D7, MSSQL]


Страницы:   1 2

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]

Дело вкуса, но на самом деле связь там делается с помощью контролируемого запроса, можешь делать его любым


Страницы:   1 2

Наверх

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