Показать сообщение отдельно
Старый 02.03.2013, 18:22   #1  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
Отмена использования временной таблицы в FormDatasource
Доброго времени суток!

Можно ли при использовании временной таблицы в источнике данных формы переключаться на использование нормальной таблицы?

Вот пример кода (к сожалению не работающего как надо)

X++:
public void executeQuery()
{
    InventTable inventTableTmp;
    InventTable inventTableData;

;
    if (! InventTable_DS.cursor().isTmp())
    {
        // Используем временную таблицу
        InventTable_DS.cursor().setTmp();
        inventTableTmp.setTmp();
        select firstonly inventTableData;
        inventTableTmp.data(inventTableData);
        inventTableTmp.insert();
        InventTable_DS.cursor().setTmpData(inventTableTmp);
    }
    else
    {
        // Пытаемся использовать таблицу из БД (не работает)
        InventTable_DS.setRecord(inventTableData);
    }

    super();
}
Задумка этого примера - при нажатии F5 грид на форме попеременно должен отображать данные из временной таблицы и данные из таблицы хранимой в БД.

Практическая задача состоит в использовании временной таблицы для построения выборки данных из разных компаний. Но в то же время пользователь может сбросить выборку с помощью галочки на форме. Использование временной таблицы в таком случае жутко замедляет процесс выборки, т.к. приходится загонять во временную таблицу все стопятсот тыщ записей, хранящихся в БД.

PS: Надеюсь понятно описал проблему