Использование ADO в Axapta

 

Для начала определимся что такое ADO?

ADO — это интерфейс к OLE DB. Он разработан для доступа к БД разных типов. ADO является расширяемой программной моделью, которую можно дополнять сервисами независимых поставщиков для доступа к конкретным базам данных. Объектная модель ADO определяет набор (коллекцию) программируемых объектов, которые могут использоваться на любой платформе, которая поддерживает COM и Автоматизацию OLE. Объектная модель ADO разработана для выполнения большинства особенностей OLE DB.

Обычно ADO и OLE DB устанавливаются при установке программ, использующих базы данных.

Подробную информацию об использовании ADO и формате строки подключения можно найти в MSDN или Platform SDK.

 

О чем эта статья?

В предыдущих шага были больше рассмотрены принципы работы в среде разработки MorphX, в этой же статье будут рассмотрены следующие примемы программирования на языке X++:

  1. назначение методов и свойств форм;
  2. использование переменных типа Строка, Число и COM-объект;
  3. использование COM-объектов DataLinks, ADODB.Connection и ADODB.RecordSet;
  4. использование конструкций циклов while и for, и условий if;
  5. работа с элементами управления StringEdit, Button, StaticText и Table.

 

Создание элементов управления

Самое простое, что можно сделать, это создать проект с именем "ADO" и в нем новую форму с именем "ADO_Form". Как именно это делать было описано ранее.

На форме создадим следующие элементы управления:

Имя Тип Комментарий
StringEditConnect StringEdit Поле ввода предназначено для ввода строки соедиения с OLEDB-источником.
ButtonNewStringConnection Button Кнопка предназначена для вызова стандартного диалога настройки строки соедиения с OLEDB-источником.
StringEditSQL StringEdit Поле ввода предназначено для ввода SQL-запроса.
ButtonConnect Button Кнопка предназначена для выполнения соединения с базой данны и выполнения запроса.
StaticText StaticText Текст предназначен для вывода комментария (подсказки)
Table Table Таблица предназначена для вывода результата выполнения SQL-запроса (не путать с Grid).

Создание элементов формы

Далее следует на форме установить значение свойства HideIfEmpty в No и расположить созданные элементы управления примерно следующим образом:

Дизайн формы

Т.к. далее мы будем использовать в коде элементы StringEditConnect, StringEditSQL и Table, поэтому у них необходимо установить свойство AutoDeclaration=Yes. Это необходимо для того, чтобы из кода мы могли бы обращаться к данным элементов без предварительного их определения.

Заглядывая немного вперед заранее создадим еще один элемент управления StringEdit, приналдежащий таблице Table. Он необходим для определения типа выводимой информации при выводе колонок. Для упращения пусть они будут все строковые. У него так же установим свойство AutoDeclaration=Yes.

Определение полей таблицы

Эту процедуру можно было сделать и программно с помощью метода AddControl, но таким образом это существенно проще.

Далее у Table создадим метод editControl, как показано на предыдущем рисунке, в котором напишем:


public FormControl editControl(int _Column, int _Row)
{
    // Определяем тип выводимой колонки
    return StringEdit;
}

Теперь все готово, для наполнения созданной формны кодом на языке X++, что будет описано далее.

Автор: Андрей Михайлов aka MAV

...Шаг 9 | Содержание | Шаг 10.2...