|
|
#15 |
|
Участник
|
а вот интересно...
Быстренько сделал простейший примерчик лукапа из двух табличек, типа паказать пользователей из группы админов.
Код: public void lookup()
{
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNUm(UserInfo),this);
Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;
;
queryBuildDataSource = query.addDataSource(tableNum(UserInfo));
queryBuildDataSource = queryBuildDataSource.addDataSource(tableNum(UserGroupList));
queryBuildDataSource.joinMode(JoinMode::InnerJoin);
queryBuildDataSource.fetchMode(QueryFetchMode::One2One);
queryBuildDataSource.relations(true);
queryBuildRange = queryBuildDataSource.addRange(fieldNum(UserGroupList, groupId));
queryBuildRange.value("Admin");
sysTableLookup.addLookupfield(fieldNum(UserInfo, Id));
sysTableLookup.addLookupfield(fieldNum(UserInfo, Name));
sysTableLookup.addLookupfield(fieldNum(UserInfo, Enable));
sysTableLookup.addLookupfield(fieldNum(UserGroupList, groupId));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}Код: SELECT * FROM UserGroupList WHERE UserInfo.id = UserGroupList.userId AND ((groupId = Admin)) стало еще интереснейне поленился, посмотрел в профайлере сиквела что получает сервер: Код: exec sp_cursorprepexec @P1 output, @P2 output, N'@P1 varchar(1000)', N'SELECT A.ID,A.NAME, A.ENABLE,A.RECVERSION,101090,B.USERID,B.GROUPID,B.MODIFIEDDATE,B.MODIFIEDTIME, B.MODIFIEDBY,B.CREATEDDATE,B.CREATEDTIME,B.CREATEDBY,B.RECVERSION,B.RECID FROM USERINFO A WITH( NOLOCK),USERGROUPLIST B WITH( NOLOCK) WHERE ((B.GROUPID=@P1) AND (A.ID=B.USERID)) ORDER BY A.ID OPTION(FAST 1)', @P3 output, @P4 output, @P5 output, 'Admin' |
|
|
|
| За это сообщение автора поблагодарили: DTD (1). | |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| How-to. Слетание пользовательских настроек в формах после вызова lookup, или MS - suxx. | 2 | |||
| Создание Lookup формы | 9 | |||
| lookup - проблема. Помогите! | 14 | |||
| LookUp | 3 | |||
| Фильтрация в lookup | 2 | |||
|