Шаг 366 - Используем ADODC

Очень хороший OCX файл который позволяет нам добраться до данных по технологии ADO. Сам он находиться в файле MSADODC.OCX. Познакомиться с ним можно в шагах "Шаг 34 - Используем ADO" и дальше. Мы с Вами подключаем его к нашему проекту. Я создал MFC AppWizard проект на базе диалогового окна и именем ADOTest. Ну и подключил его как всегда.

366_1.gif (11293 b)

Он создаст классы. Все созданные классы да и сам элемент будут в проекте, на тот случай если Вам не захочется их создавать.

366_2.gif (1631 b)

Нашей задачей будет используя этот элемент установить связь с источником данных и получить от туда данные. Подключаем описание:

///////////////////////
// CADOTestDlg dialog

#include "adodc.h"

class CADOTestDlg : public CDialog
{
// Construction

Создаем объект класса.

class CADOTestDlg : public CDialog
{
// Construction
public:
	CADOTestDlg(CWnd* pParent = NULL);	// standard constructor
	CAdodc ca;
// Dialog Data
	//{{AFX_DATA(CADOTestDlg)

Нам нужно его создать и спрятать с глаз.

BOOL CADOTestDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	ca.Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE, CRect(0, 0, 400, 200), this, 111);
	ca.ShowWindow(SW_HIDE);
	// Add "About..." menu item to system menu.

Теперь нужно произвести инициализацию строку соединений, запрос на строки.

ca.SetConnectionString("PROVIDER=MSDASQL.1;dsn=Auto;uid=sa;pwd=123;database=auto;");
ca.SetRecordSource("SELECT * FROM car"); 
ca.Refresh();

Указав строку соединения и запрос на данные мы можем создать обьект набора строк. Включаем описание

////////////////////////
// CADOTestDlg dialog

#include "adodc.h"
#include "_recordset.h"

Сначала мы его просто создадим.

class CADOTestDlg : public CDialog
{
// Construction
public:
	CADOTestDlg(CWnd* pParent = NULL); // standard constructor
	CAdodc ca;
	C_Recordset cr;
// Dialog Data

Потом получим данные из ADODC

BOOL CADOTestDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	ca.Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE, CRect(0, 0, 400, 200), this, 111);
	ca.ShowWindow(SW_HIDE);
	ca.SetConnectionString("PROVIDER=MSDASQL.1;dsn=Auto;uid=sa;pwd=123;database=auto;");
	ca.SetRecordSource("SELECT * FROM car"); 
	ca.Refresh(); 
	cr=ca.GetRecordset(); 
	long i=cr.GetRecordCount(); 
	char buffer[255];
	itoa(i,(char*)&buffer,10);
	AfxMessageBox(buffer);

В результате мы увидим диалоговое окно в котором будет количество записей.

366_3.gif (1856 b)

Их правда пять и находятся они на SQL Server если посмотрели строку соединения. Auto это настроенный DSN для ODBC.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.