Показать сообщение отдельно
Старый 15.04.2006, 14:26   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,277 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Из моих наблюдений ...
Что неудобно / нужно помнить
1. При конструировании запроса нельзя забывать добавлять условие фильтрации компании (Аксапта ведь сама в X++ автоматически добавляет это условие). Если в системе используются виртуальные компании, то в этом случае в определенных таблицах поле dataareaid будет в себе содержать не идентификатор текущей компании, а идентификатор виртуальной компании. Конечно об этом нужно помнить только при построении запросов внутри одной компании.

2. Имя поля/таблицы в AOT вообще говоря отличается от соответствующих имен в БД. Правда это касается только таблиц/полей с именем, длиннее 30 символов (в частности у MS SQL Server) - однако такие названия встречаются.
В этом случае корректнее будет за каждым названием лезть в табличку SQLDictionary - которая хранит соответствие название в АОТ названиям в БД.

3. Считать поле результата выборки (это класс ResultSet) можно только один раз и только по возрастанию порядка следования. Т.е. после считывания поля3 - поля1, 2 и 3 считать уже нельзя. Плюс возможность передвижения по курсору только вперед. Сюда же можно отнести невозможность при считывании данных обращаться по имени а не по номеру поля.

4. Ну и наконец любимая заморочка с датами. Если класс исполняется на клиенте и региональные настройки клиента отличаются от региональных настроек сервера - то для даты метод getString не прокатит - тк с точки зрения сервера это дата, однако метод getDate также не прокатит - т.к. он не сможет преобразовать серверную дату в клиентскую.

Если это возможно (в Вашем случае) - я бы порекомендовал подключение через ADO. (Классы ссADO*). При их использовании пункты 3 и 4 устраняются.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 15.04.2006 в 14:38.
За это сообщение автора поблагодарили: mazzy (15), Dodger (1), Gustav (4), alex55 (1).