GameWithFire
Библиотека вспомогательных классов для 1С:Предприятия 8.x. Исполнена по стандарту внешних компонент 1С:Предприятия.
Автор: Дмитрий Ощепков aka DmitrO (С)
Версия 1.3
Описание классов
ADOUtils
ProgID: GameWithFire.ADOUtils
Имя типа объекта 1С: AddIn.ADOUtils
Объект предназначен для сервисных процедур для работы с Microsoft Active Data Objects (ADO).
Свойства
Перечисления / Enums
Тип: COM объект. Только чтение.
Описание: возвращает объект, одноименными свойствами которого, являются объекты перечислений из библиотеки типов ADO. Объекты перечислений имеют одноименные свойства значений перечислений из библиотеки типов ADO.
Предназначено для получения различных констант ADO, заданных перечислениями в библиотеки типов. Версия библиотеки типов должна быть 2.x.
Пример:
DataTypes = ADOUtils.Enums.DataTypeEnum;
ParameterDirection = ADOUtils.Enums.ParameterDirectionEnum;
Command.CreateParameter(Неопределено, DataTypes.adDBTimeStamp, ParameterDirection.adParamInput, 0, ДатаНачалаМесяца);
ДвоичныеДанныеВВидеСтрок / BinaryDataAsStrings
Тип: Булево. Чтение и запись.
Описание: если Истина, то в таблице значений (результате запроса) данные типов adBinary, adVarBinary, adLongVarBinary будут приниматься в виде строк с шестнадцатиричной записью массива байтов с префиксом "0x", соответствующим колонкам ТЗ будет назначен тип Строка(0). Максимальная длина отображаемых данных для типа adLongVarBinary 8 килобайт. Если Ложь, то никакого преобразования не будет. (В этом случае ADO возвращает SafeArray VT_UI1.) После создания объекта значение свойства - Ложь.
Методы
ADORecordsetВТаблицуЗначений(ADORecordset) / ADORecordsetToValueTable
Параметры: ADORecordset - тип: COM объект ADORecordset. Набор записей - источник данных.
Возвращает: тип: ТаблицаЗначений. Новая таблица значений заполненная данными набора записей.
Описание: метод создает новую таблицу значений с колонками соответствующими колонкам переданного набора записей. И переносит содержимое набора записей в таблицу значений. При создании колонок в таблице значений, им назначается тип соответствующий типу поля ADORecordset.
Соответствие типов:
adChar, adVarChar, adWChar, adVarWChar, adBSTR: Строка(n); где n - DefinedSize, переменная длина;
adDecimal, adNumeric: Число(p, s), где p - Precision; s - Scale; любой знак;
adUnsignedTinyInt: Число(3, 0), любой знак;
adSmallInt, adUnsignedSmallInt: Число(5, 0), любой знак;
adInteger, adUnsignedInt: Число(10, 0), любой знак;
adBigInt, adUnsignedBigInt: Число(20, 0), любой знак;
adDate, adDBDate, adDBTime, adDBTimeStamp: Дата, дата и время;
adBoolean: Булево.
А также колонка может содержать тип Null.
Для остальных типов ADO тип колонки таблицы значений не назначается.
Правила назначения имени колонки: если имя в результате запроса пустое, назначается имя '_', если в имени есть символы не буквы и не цифры они заменяются на символ '_', если первый символ имени цифра, он заменяется на символ '_'; затем, если получилось такое имя, которое уже присутствует в коллекции колонок, то имя новой колонки будет образовано путем добавления суффикса с индексом начиная от 1.
ADORecordsetВРезультатЗапроса(ADORecordset, Итоги) / ADORecordsetToQueryResult
Параметры: ADORecordset - тип: COM объект ADORecordset. Набор записей - источник данных.
Итоги - тип: Строка. Строка описания итогов (ресурсов и измерений) для результата запроса. Необязательный. По-умолчанию - пустая строка.
Возвращает: тип: РезультатЗапроса.
Описание: позволяет получить объект типа РезультатЗапроса для набора данных. Реализован с помощью объекта ПостроительЗапроса. Настройка объекта ОписаниеИсточиникаДанных для построителя запроса описывается параметром Итоги.
Формат строки итогов:
[<Ресурс>[,...n]] [ПО <Измерение>[,...n]]
<Ресурс>
<Выражение> [КАК <ИмяРесурса>]
<Выражение>
Выражение на языке запросов допустимое при описании источника данных для построителя запроса в свойстве КолонкаОписанияИсточникаДанных::Итог.
<ИмяРесурса>
Имя колонки в источнике данных для помещения результата выражения.
<Измерение>
Имя колонки в источнике данных которая будет являться измерением.
Замечание 1. Если ИмяРесурса не указано, то имя ресурса подбирается автоматически по колонке использованной в выражении. Если в выражении используется несколько колонок, необходимо явное указание имени ресурса с помощью ключевого слова КАК. При явном указании имени ресурса ключевое слово КАК не указывать не допускается.
Замечание 2. Необходимо помнить что при задании хотябы одного ресурса или измерения в результате запроса всегда присутствует общий итог (по всем записям). Это ограничение объекта ПостроительЗапроса.
Пример использования
ПодключитьВнешнююКомпоненту("GameWithFire.ADOUtils");
ADOUtils = Новый("AddIn.ADOUtils");
Connection = Новый COMОбъект("ADODB.Connection");
Connection.Open("Provider=sqloledb;Server=MyServer;Database=MyDatabase;Trusted_Connection=yes;");
Recordset = Connection.Execute("select * from MyTable (nolock)");
ТЗ = ADOUtils.ADORecordsetToValueTable(Recordset);
ТЗ.ВыбратьСтроку();
Примечание: загружать компоненту методом ЗагрузитьВнешнююКомпоненту невозможно.
Условия распространения
Распростаняется свободно и "как есть". Автор не несет никакой ответственности за последствия использования этой программы. Разрешается делать сколько угодно копий программного продукта (GameWithFire.dll) и передавать третьим лицам. Разрешается также использовать программный продукт по назначению для получения коммерческой прибыли. Не разрешается продавать программный продукт и дизассемблировать с целью восстановления исходного кода.
Документация для следующих версий размещается по адресу: http://main.1c-ei.ru/Articles/gamewithfire