Компонент доступа к БД/ Построение запросов

Построение запросов

     Чтобы построить и выполнить запрос, используя компонент ORM "Dolphin", необходимо:

  • создать объект сущности
  • создать объект шлюза к базе данных на основе созданной сущности (можно воспользоваться имеющимся шлюзом, если он был создан на основе сущности того же типа)
  • сформировать список получаемых полей методом «AddField», если надо получить все поля этот пункт пропустить
  • добавить условия выборки с помощью методов «AddCondition» и «AddConditionLink»
  • добавить агрегирующие функции и группировки используя методы «UseGroupRezults и «UseAgregatFunction»
  • добавить порядок сортировки методом «UseOrder»
  • выполнить запрос, вызвав метод «ExecuteQuerry(par)»
  • выбрать результаты в цикле, используя метод «NextRecord»

     Параметр в методе ExecuteQuerry(par) может принимать одно из трех значений:

  • par=1, в этом случае запрос вернет все собственные поля объекта сущности
  • par=2, дополнительно будут получены все поля всех присоединенных объектов
  • par=3, будут получены только поля, выбранные методом «AddField»

Для ограничения числа получаемых строк применяется метод «SelectFirstN»

dbg.SelectFirstN(k);//получить k первых записей

     Для получения различных строк необходимо значение поля «Distinct» установить равным true.

dbg.Distinct = true;

     Рассмотрим построение и выполнение простого запроса на примере.

     Создаем экземпляр сущности.

Employee employee = new Employee()

     Затем создаем экземпляр шлюза к базе данных на основе созданного объекта employee.

DataBaseGate dbg = new DataBaseGate(employee, cn)

     Выполняем запрос к базе данных.

dbg.ExecuteQuerry(2)

     Результаты запроса получаем в цикле.

while (dbg.NextRecord())
{
        employee = (Employee)dbg.Result;
        //обрабатывем результат
        i = this.dataGridView1.Rows.Add();
        dataGridView1.Rows[i].Cells["FirstName"].Value = 
                                      employee.FirstName;
        //и так далее
}

     Перед выполнением следующих запросов объект dbg необходимо очистить от результатов выполнения запроса.

dbg.NewQuery();

     Обработка ошибок.

     В случае ошибки при формировании или выполнении запроса, поле «Status» объекта «dbg» получит значение false, в поле «message» запишется информация об ошибке.

if (!dbg.Status)
        MessageBox.Show(dbg.message);