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

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

Множественный оператор SELECT для DataAdapter [IB6.x]


oslep ©   (2005-08-14 11:19:00) 

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

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1124001775&n=14


oslep   (2005-08-14 16:50:00) [1]


> попытка выполнения двойного запроса вернет ошибку а не нужную
> структуру

Так и происходит


> при мастер-детайл используется 2 различных набора данных, с
> раздельными запросами


А вот именно такие запросы в примере и приведены - две таблицы, связанные по какому-то ID. И именно по NextRecordSet строятся две вложенные таблицы в DataSet [DataAdapter.Fill()]. Манипулируя объектом DataSet.Relations выстраивается структура, отображаемая затем в DataGrid

А.. ладно, разберемся


sniknik   (2005-08-14 15:57:00) [2]

> Отношения вроде строятся уже в DataSet.
но ты же используеш (в вопросе) готовый обьект SQLDataAdapter, который ожидает (судя по запросу) двойной рекордсет на вход (выполняет запрос и ждет). т.е. чтобы по NextRecordSet там был еще один. а выполняя такойже запрос в IB он не только не получает нужной структуры но и вообще ничего не получает... (попытка выполнения двойного запроса вернет ошибку а не нужную структуру)
кстати про ошибку. приведение возвращаемой ошибки многое бы прояснило/уточнило...

> чтобы потом построить мастер-деталь
а вот это совсем другое дело, при мастер-детайл используется 2 различных набора данных, с раздельными запросами, которые отработают на любом, практически, sql сервере. это ты сам можеш настраивать. это не встроенные средства обьекта. не надо сравнивать.

> Ручками придется, однако.
однако да.


oslep   (2005-08-14 13:33:00) [3]

Отношения вроде строятся уже в DataSet. Да, в общем непонятно, но работать не хочет. То есть не пойму пока как получить два нобора данных чтобы потом построить мастер-деталь в компоненте DataGrid. Ручками придется, однако. Ну ладно, спасибо


sniknik   (2005-08-14 11:35:00) [4]

ну взглянул, легче стало? ;о))

если выполнить
select * from Employees; select * from Customers;
в MSSQL получиш 2 рекордсета (при условии что такие таблици есть...)

а если выполнить тоже самое в IB6.x ? скорее всего получиш ошибку и ни одного рекордсета... (при том же условии. таблици есть)

этот SQLDataAdapter скорее всего строит отношения по полученным рекордсетам, которых IB6 не возврашает, т.что менять надо его. на то что ближе к стандартам мелкософта, и тоже может выдавать список рекодсетов... (вернее там не список а указатель в первом на второй и т.д. пока не null).


Наверх

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