! | Данная информация предназначена только только для IT-специалистов по системной интеграции модулей БИОСОФТ-М. (см. Руководства пользователя к программным продуктам) |
Выборка SELECT должна всегда инкапсулироваться единообразным шаблонным методом, возвращающим queryorcount и состоящего из следующих обязательных элементов:
заголовка(итератора, выходных данных и опционально параметров фильтрации) { декларации rQuery деклараций from-алиасов таблиц с результатами запроса условной инициализации запроса на первой итерации: { задание JOINов и связывание from-алиасов с таблицами БД опциональное задание фильтров запроса } при условии наличия результата: { получение записей из from::QueryRef } возврат статуса queryorcount }
queryorcount CStorageEncapClass::QuerySomething( out iter& out_i, out ref<CSomething>& out_rSomething, key keyPrimary, xxxx xxxxOptionalFilterDefinition, ...) { ref<CQueryIfaceGp> rQuery = out_i.GetNextQuery(); from<CDbSomething> fromSomething(rQuery); from<CDbSomethingElse> fromSomethingElse(rQuery); from<CDbSomethingMore> fromSomethingMore(rQuery); ... if (rQuery->Init()) { fromSomething. BeginFrom( rDbRoot-> _x_dblistSomething, keyPrimary); fromSomethingElse. Join( ...); fromSomethingMore. JoinLeft( ...); rQuery->x_qxboolWhere = Qx conditions } if (rQuery->Next()) { out_rSomething = fromSomething.FetchRef(); } return rQuery; }
Показано 3 подкатегории из 3.
×Queryorcount(0)