![]() |
#1 |
Участник
|
Разница в работе селектов/запросов в джобах и на формах
В джобе:
Код: SalesPickingListJournalTable spt; SalesPickingListJournalLine spl; InventTable it; ; while select spt where spt.BD_InventJournalId != "" join spl where spl.PickingListId == spt.PickingListId exists join it where it.ItemId == spl.Itemid && it.ItemType == ItemType::Service { info(spt.PickingListId); } На форме поместил один dataSource SalesPickingListJournalTable, в init источника данных сделал следущее: Код: QueryBuildDataSource qSPT, qSPL, qIT; super(); qSPT = this.query().addDataSource(tablenum(SalesPickingListJournalTable)); qSPL = qSPT.addDataSource(tablenum(SalesPickingListJournalLine)); qSPL.addLink(fieldnum(SalesPickingListJournalTable, PickingListId), fieldnum(SalesPickingListJournalLine, PickingListId)); qIT = qSPL.addDataSource(tablenum(InventTable)); qIT.addRange(fieldnum(InventTable, ItemType)).value(queryValue(ItemType::Service)); qIT.addLink(fieldnum(SalesPickingListJournalLine, ItemId), fieldnum(InventTable, ItemId)); qIT.joinMode(JoinMode::ExistsJoin); Код: SELECT * FROM SalesPickingListJournalTable JOIN * FROM SalesPickingListJournalLine WHERE SalesPickingListJournalTable.PickingListId = SalesPickingListJournalLine.PickingListId EXISTS JOIN * FROM InventTable WHERE SalesPickingListJournalLine.Itemid = InventTable.ItemId AND ((ItemType = Услуга)) ![]() Последний раз редактировалось Dronas; 23.06.2008 в 09:59. |
|
![]() |
#2 |
Участник
|
Цитата:
Если свойствами вы установили что форма не должна сама создавать запрос, то скорее всего Query не инициализирован и вы добавляете таблицу к неинициализированному запросу. Если вы не меняли свойства датасорса, то форма сама уже создала запрос. А вы к нему ДОБАВЛЯЕТЕ еще одну таблицу. Либо пересоздавайте query полностью, либо добавляйте только новые таблицы к суще существующим. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от mazzy
![]() этой командой вы заставляете ДОБАВИТЬ таблицу к УЖЕ СУЩЕСТВУЮЩЕМУ запросу.
Если свойствами вы установили что форма не должна сама создавать запрос, то скорее всего Query не инициализирован и вы добавляете таблицу к неинициализированному запросу. Если вы не меняли свойства датасорса, то форма сама уже создала запрос. А вы к нему ДОБАВЛЯЕТЕ еще одну таблицу. Либо пересоздавайте query полностью, либо добавляйте только новые таблицы к суще существующим. ![]() |
|
![]() |
#4 |
Участник
|
Может удалить? Все равно бесполезная тема
![]() |
|
|
|