Показать сообщение отдельно
Старый 28.09.2010, 16:52   #3  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от AndyD Посмотреть сообщение
Проблема в том, что MS SQL хранит и сортирует GUID (или UNIQUEIDENTIFIER) не в виде текста, а в виде 16-байтного числа. Причем, порядок следования экстентов не соответствует текстовому виду (последние экстент идет впереди).

По-этому, сортировка по GUID будет отличиться от текстового представления.


Цитата:
Сообщение от kornix Посмотреть сообщение
Судя по всему лукап по полю с типом Guid работает без позиционирования на текущем выбранном элементе. Можно выбрать другое решение, чтобы не дописывать стандартные классы - перекрыть лукап по какому-нибудь другому полю, тоже уникальному в Table1, а в методе lookup() на поле добавить только колонку с Guid. Будет полноценный выбор Guid'а:
X++:
public void lookup()
{
    Query                   query = new Query();
    QueryBuildDataSource    qbds;
    SysTableLookup          sysTableLookup = SysTableLookup::newParameters(tablenum(Table1), this);
    ;

    sysTableLookup.addLookupfield(fieldnum(Table1, testGuid));
    qbds = query.addDataSource(tablenum(Table1));
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();

}
Другого решения не нашел. Если придумаете - напишите, пожалуйста
С переходом к основной таблице тоже типа такой баг? Как нибудь решается, без насильственного программирования?
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.