Додавання обробника кнопку Запуск

Ви повинні додати функцію обробник для запуску кнопки, створені в діалоговому файлу ресурсів.

Щоб створити кнопку обробник виконати

Щоб створити обробник, ви повинні використовувати Горгани OLE DB споживача шаблон:

Кожний з цих класів відповідає COM-об'єкта в постачальника.

Додати код показано нижче. У кодексі обробника CCommand об'єкт займає CProvider клас як параметр шаблон. Цей параметр позначає прив'язки, які використовуються постачальником для доступу до даних.

///////////////////////////////////////////////////////////////////////
/ / TestProvDlg.cpp

недійсним CTestProvDlg::OnRun()
{
   CCommandlt;CAccessor <CProvider> > Таблиця;
   CDataSource джерело;
   CSession сесії;

Якщо (джерело.Open("MyProvider.MyProvider.1", Null)! = S_OK)
      повернення;

Якщо (сесії.Open(Source)! = S_OK)
      повернення;

Якщо (таблиці.Відкрити (сесії, _T("c:\\public\\testprf2\\gloo.txt"))! = S_OK)
      повернення;

під час (таблиці.MoveNext() = = S_OK)
   {
      m_ctlString1.AddString(Table.szCommand);
      m_ctlString2.AddString(Table.szText);
   }
}

Обробник використовує три відкриті дзвінки, показано нижче, які відповідають три COM об'єктів у постачальника. Він знаходить провайдера за допомогою його код програми. Ви можете отримати код програми з системного реєстру або постачальник rgs файл ( MyProvider.rgs для простих постачальника показано в реалізації простий Read-Only провайдера). Постачальник відкриється текстовий файл з іменем gloo.txt , яка містить числа рядків, розділених перевезення повертає. Відкрити проходить файлу надано постачальнику як рядок до постачальника.

   якщо (джерело.Open("MyProvider.MyProvider.1", Null)! = S_OK)
      повернення;

Якщо (сесії.Open(Source)! = S_OK)
      повернення;

Якщо (таблиці.Відкрити (сесії, _T("c:\\public\\testprf2\\gloo.txt"))! = S_OK)
      повернення

Витягти дані, дзвінки обробника table.MoveNext , як показано нижче. Коли немає більше рядків, постачальник повертає DB_S_ENDOFROWSET і петлі припиняється. Заяви елемент керування цикл порівнює значення, яке повертається до S_OK. Якщо код макросу успішно , петлі не буде припинити, тому що DB_S_ENDOFROWSET вважається успішним код повернення.

   під час (таблиці.MoveNext() = = S_OK)
   {
      m_ctlString1.AddString(Table.szCommand);
      m_ctlString2.AddString(Table.szText);
   }

Споживач готовий до перевірки цього постачальника простий (побудований в реалізації простий Read-Only провайдера).

Наступна тема показує, як змінити споживача для використання в Розширений постачальник IRowsetLocate інтерфейсу.

Назад до реалізації на споживача OLE DB шаблон

Index