Показать сообщение отдельно
Старый 14.11.2006, 22:50   #10  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
может в этом дело
Запрос в МБС
"
При разборе сложных запросов Query и преобразования их в SQL команды парсер запросов выдает неправильные результаты, обрезая некоторые DataSource из результирующей команды

Например имеет запрос со структорой (полный xpo запроса в приложенном файле)

InventTable
|_ InventTableModule1
- |_ Unit1
|_ InventTableModule2
- |_ Unit2

Все связи по innerJoin или existsJoin (значения не имеет)
В результате на сервер БД посылается запрос

SELECT A.ITEMGROUPID,A.ITEMID,A.ITEMNAME,A.ITEMTYPE,A.PURCHMODEL,A.HEIGHT,A.WIDTH,A.SALESMODEL,
A.COSTGROUPID,A.REQGROUPID,A.PRIMARYVENDORID,A.NETWEIGHT,A.DEPTH,A.UNITVOLUME,A.BOMUNITID,A.DENSITY,
A.DEL_SCRAPTYPEID,A.DIMENSION,A.DIMENSION2_,A.DIMENSION3_,A.DIMENSION4_,A.DIMENSION5_,A.COSTMODEL,
A.USEALTITEMID,A.ALTITEMID,A.INTRACODE,A.BOMMANUALCONSUMP,A.BOMMANUALRECEIPT,
A.STOPEXPLODE,A.DEL_COVPERINVENTLOCATION,A.PHANTOM,A.INTRAUNIT,A.BOMLEVEL,A.BATCHNUMGROUPID,
A.AUTOREPORTFINISHED,A.ORIGCOUNTRYID,A.STATISTICSFACTOR,A.ALTCONFIGID,A.STANDARDCONFIGID,
A.DEL_CONFIGACTIVE,A.PRODPOOLID,A.PROPERTYID,A.ABCTIEUP,A.ABCREVENUE,A.ABCVALUE,A.ABCCONTRIBUTIONMARGIN,
A.COMMISSIONGROUPID,A.DEL_BARCODE,A.DEL_BARCODETYPE,A.CONFIGURABLE,A.SALESPERCENTMARKUP,
A.SALESCONTRIBUTIONRATIO,A.SALESPRICEMODELBASIC,A.MINAVERAGESETTLE,A.NAMEALIAS,A.PRODGROUPID,
A.PROJCATEGORYID,A.GROSSDEPTH,A.GROSSWIDTH,A.GROSSHEIGHT,A.STANDARDPALLETQUANTITY,A.QTYPERLAYER,
A.SORTCODE,A.CONFIGSIMILAR,A.SERIALNUMGROUPID,A.DIMGROUPID,A.MODELGROUPID,A.ITEMBUYERGROUPID,
A.TAXPACKAGINGQTY,A.DEL_TEMPLATE,A.WMSPALLETTYPEID,A.ORIGSTATEID,A.STOPEXPLODEPRICE,A.WMSPICKINGQTYTIME,
A.TARAWEIGHT,A.PACKAGINGGROUPID,A.SCRAPVAR,A.SCRAPCONST,A.ITEMDIMCOMBINATIONAUTOCREATE,
A.ITEMDIMCOSTPRICE,A.ITEMIDCOMPANY,A.PBAITEMCONFIGURABLE,A.PBAINVENTITEMGROUPID,
A.GROSSWEIGHT_RU,A.PACKING_RU,A.ASSETGROUPID_RU,A.ASSETID_RU,A.RECID,
B.ITEMID,B.MODULETYPE,B.UNITID,B.PRICE,B.PRICEUNIT,B.MARKUP,B.LINEDISC,B.MULTILINEDISC,B.ENDDISC,
B.QUANTITY,B.LOWESTQTY,B.HIGHESTQTY,B.TAXITEMGROUPID,B.BLOCKED,B.DELIVERYTIME,B.INVENTLOCATIONID,
B.MANDATORYINVENTLOCATION,B.STANDARDQTY,B.MARKUPGROUPID,B.PRICEDATE,B.PRICEQTY,B.ALLOCATEMARKUP,
B.OVERDELIVERYPCT,B.UNDERDELIVERYPCT,B.SUPPITEMGROUPID,B.CALENDARDAYS,B.INTERCOMPANYBLOCKED,
B.PRICESECCUR_RU,B.MARKUPSECCUR_RU,B.RECID,C.UNITID,C.TXT,C.UNITDECIMALS,C.UNITSYSTEM,C.CODEOKEI_RU,C.RECID
FROM INVENTTABLE A(NOLOCK) ,INVENTTABLEMODULE B(NOLOCK) ,UNIT C(NOLOCK)
WHERE (A.DATAAREAID=?)
AND ((B.DATAAREAID=?)
AND ((B.MODULETYPE=?)
AND (A.ITEMID=B.ITEMID)))
AND ((C.DATAAREAID=?)
AND (B.UNITID=C.UNITID))
ORDER BY A.DATAAREAID,A.ITEMID OPTION(FAST 9)

из которого вырезаны InventTableModule_2 и Unit_2
Исправление ошибки особенно важно, так как запросы создаются не только разработчиками, но и непосредственно пользователями (например, при построении фильтра на форме).
--------------------------------------------------------------------------
2/22/2005 9:01:00 AM PST -- Sergey Gerasimov
Добрый день, Роман,

Ваш запрос 'Ошибка парсера заросов при разборе сложных запросов' принят в обработку.

С уважением
Сенргей Герасимов.
--------------------------------------------------------------------------
3/9/2005 3:26:00 AM PST -- Sergey Gerasimov
"
... далее следует переписка длиною в год

Последний раз редактировалось db; 14.11.2006 в 22:55.