![]() |
#1 |
Участник
|
Помогите с запросом
Запрос
A join B on A.P=B.P join C on A.K=C.K через Relations в один запрос qbds = query.addDataSource(tablenum( A )); qbds.addRange(fieldnum( A, ItemId )); qbds = qbds.addDataSource(tablenum(B)); qbds.relations(true); qbds.fetchMode(QueryFetchMode::One2One); qbds = qbds.addDataSource(tablenum(C)); qbds.relations(true); qbds.fetchMode(QueryFetchMode::One2One); но С тогда Relation ищет уже с B ? а как задать, чтобы Relations были C с A ? |
|
![]() |
#2 |
Участник
|
используйте разные переменные qbds
|
|
![]() |
#3 |
Участник
|
Попробуйте так:
X++: qbdsA = query.addDataSource(tablenum(A)); qbdsA.addRange(fieldnum(A, ItemId)); qbds = qbdsA.addDataSource(tablenum(B)); qbds.relations(true); qbds.fetchMode(QueryFetchMode::One2One); qbds = qbds.addDataSource(tablenum(C)); qbds.addLink(fieldnum(A, K), fieldnum(C, K), qbdsA.name()) qbds.fetchMode(QueryFetchMode::One2One); Последний раз редактировалось Cardagant; 03.06.2015 в 18:19. |
|
![]() |
#4 |
Участник
|
Цитата:
а как задать, чтобы Relations были C с A ?
X++: qbdsA = query.addDataSource(tablenum( A )); qbdsA.addRange(fieldnum( A, ItemId )); qbds = qbdsA.addDataSource(tablenum(B)); qbds.relations(true); qbds.fetchMode(QueryFetchMode::One2One); qbds = qbdsA.addDataSource(tablenum(C)); qbds.relations(true); qbds.fetchMode(QueryFetchMode::One2One); |
|
![]() |
#5 |
Участник
|
Спасибо, Ivan,
Ваш вариант правда работает при X++: qbds.fetchMode(QueryFetchMode::One2One); Мой вариант сработает также и при отсутствии задания типа связи 1:1. Но вопрос был и правда о том, Цитата:
а как задать, чтобы Relations были C с A ?
![]() |
|
![]() |
#6 |
Участник
|
Мне как раз и надо 1 ко многим связь. One2One можно убирать только в варианте Cardagant ?
|
|
![]() |
#7 |
Участник
|
Цитата:
Связывание источников данных в запросах |
|
|
За это сообщение автора поблагодарили: trudel (1). |
![]() |
#8 |
Участник
|
Вот согласно теории
FetchMode Это свойство присутствует только у вложенных источников данных. Иногда используется для управления способом связывания источников данных («один ко многим» или «один к одному»), но обычно достаточно использования свойства JoinMode. Я смотрю практически все FetchMode указывают в обязательном порядке. И практически везде One2One ... Но вроде зачастую связи 1 ко многим даже более частые. Например водитель A может ездить на нескольких машинах из С, это 1 ко многим, но One2One все равно срабатывает как 1 ко многим у меня. Точнее в результате Егоров Ауди Егоров Бмв Егоров Лада я вижу. Запутался с FetchMode, хотя неоднократно использовал) |
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Нет, не путайте. Свойство FetchMode не за это отвечает.
Связывание источников данных в запросах |
|
![]() |
#10 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Нет, не путайте. Свойство FetchMode не за это отвечает.
Связывание источников данных в запросах |
|
|
![]() |
||||
Тема | Ответов | |||
Помогите с запросом | 4 | |||
Помогите с запросом | 8 | |||
Помогите с запросом.. | 2 | |||
Помогите с SQL запросом | 8 | |||
Помогите пожалуйста с запросом... | 18 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|