3. после создания экземпляра класса Connection создаем соединение. С этой целью вызываем метод Open объекта Connection.

HRESULT Open(_bstr_t ConnectionString, _bstr_t UserID, _bstr_t Password, long Options=NULL);

ConnectionString - строка соединения (см.табл.1.1 и 1.2).

UserID - имя пользователя для подключения к источнику данных

Password - пароль пользователя

Options - позволяет указать, каким образом будет осуществляться соединение - синхронно (adConnectUnspecified) или асинхронно(adAsyncConnect).

Таблица 1.1. Вид строки соединения, передаваемой в метод Open(...) объекта Connection для различных OLE DB поставщиков (MSDN)

Источник данных Строка соединения OLE DB
Microsoft® Access Provider=Microsoft.Jet.OLEDB.4.0;Data Source=physical path to .mdb file
Microsoft SQL Server Provider=SQLOLEDB.1;Data Source=path to database on server
Oracle Provider=MSDAORA.1;Data Source=path to database on server
Microsoft Indexing Service Provider=MSIDXS.1;Data Source=path to file

Таблица 1.2. Вид строки соединения, передаваемой в метод Open(...) объекта Connection для различных ODBC поставщиков данных (MSDN)

Источник данных Строка соединения ODBC
Microsoft Access Driver={Microsoft Access Driver (*.mdb)};DBQ=physical path to .mdb file
SQL Server DRIVER={SQL Server};SERVER=path to server
Oracle DRIVER={Microsoft ODBC for Oracle};SERVER=path to server
Microsoft Excel Driver={Microsoft Excel Driver (*.xls)};DBQ=physical path to .xls file; DriverID=278
Microsoft Excel 97 Driver={Microsoft Excel Driver (*.xls)};DBQ=physical path to .xls file;DriverID=790
Paradox Driver={Microsoft Paradox Driver (*.db)};DBQ=physical path to .db file;DriverID=26
Text Driver={Microsoft Text Driver (*.txt;*.csv)};DefaultDir=physical path to .txt file
Microsoft Visual FoxPro® (with a database container) Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDb=physical path to .dbc file
Microsoft Visual FoxPro (without a database container) Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDb=physical path to .dbf file

Следующий пример показывает установку соединения с базой данных pubs, входящей в стандартный пакет поставки MS SQL Server 7.0 с помощью OLE DB поставщика:

_ConnectionPtr pConn = NULL;

_bstr_t strConn = "Provider=sqloledb;Data Source=(local);Initial Catalog=pubs";

try

{

pConn.CreateInstance(__uuidof(Connection));

pConn->Open(strConn,"sa","",adConnectUnspecified);

}

catch(_com_error e)

{

//Обработка ошибок соединения

}

Примечание:

Исключения в ADO. Для обработки исключений ADO необходимо обеспечить блок catch для объекта _com_error. Этот класс используется для возврата ошибок из классов, сгенерированных директивой #import. Класс _com_error инкапсулирует генерируемые значения HRESULT и любые объекты IErrorInfo, сгенерированные поставщиком OLE DB.

Пример обработчиков исключений ADO:

void PrintComError(_com_error &e)

{

_bstr_t bstrSource(e.Source());

_bstr_t bstrDescription(e.Description());

// Print COM errors.

printf("Error ");

printf(" Code = %08lx ", e.Error());

printf(" Code meaning = %s ", e.ErrorMessage());

printf(" Source = %s ", (LPCSTR) bstrSource);

printf(" Description = %s ", (LPCSTR) bstrDescription);

}

void PrintProviderError(_ConnectionPtr pConnection)

{

// Print Provider Errors from Connection object.

// pErr is a record object in the Connection's Error collection.

ErrorPtr pErr = NULL;

if( (pConnection->Errors->Count) > 0)

{

long nCount = pConnection->Errors->Count;

// Collection ranges from 0 to nCount -1.

for(long i = 0;i < nCount;i++)

{

pErr = pConnection->Errors->GetItem(i);

printf(" Error number: %x %s", pErr->Number,

pErr->Description);

}

}

}

По умолчанию при установке соединения время ожидания составляет 15 сек. Изменить это значение можно заданием перед открытием соединения свойства ConnectionTimeout.

Если требуется ограничить доступ приложения к источнику данных, перед открытием соединения необходимо установить режим коннекта (свойство Mode объекта Connection). Mode может содержать комбинацию (поразрядное ИЛИ) следующих значений:

adModeRead - Только для чтения

adModeReadWrite - Для чтения/записи.

adModeShareDenyNone - Позволить другим проводить чтение/запись

adModeShareDenyRead - Запретить другим чтение.

adModeShareDenyWrite - Запретить другим запись

adModeShareExclusive - Запретить другим чтение/запись

adModeUnknown - Нет разрешений (по умолчанию)

adModeWrite - Только для записи

6. Закрытие соединения

Завершается работа с источником данных закрытием соединения - вызовом метода Close() объекта Connection.

pConn->Close();

Часть 2.

Итак, продолжим.

7. Наборы записей.

Соединение с источником данных установлено. Далее необходимо собственно эти данные получить и как-то ими управлять. С этой целью создается объект Recordset, который инкапсулирует набор записей, возвращаемых источником. С помощью этого объекта мы сможем добавлять, удалять, изменять записи, в этот объект включен механизм перемещений по записям в наборе данных.


Информация о работе «Введение в ADO»
Раздел: Информатика, программирование
Количество знаков с пробелами: 25509
Количество таблиц: 2
Количество изображений: 0

Похожие работы

Скачать
35963
32
2

... /загружать в/из файла. Его можно сохранять/загружать в/из текстовой строки. Он может загружать данные из объекта Record или какого-либо ресурса по URL. Его можно клонировать. Для иллюстрации работы с объектом Stream приведу-таки пример на VB6, который сохраняет изображение в файл без использования инструкции Put: Dim stream As New ADODB.stream 'Тип потока - бинарный stream.Type = ...

Скачать
31935
18
6

... string Company;  public string Phone;  public string Fax;  // Для отложенной загрузки списка заказов необходимо перейти  // от использования ArrayList к использованию специального класса из  // ObjectSpaces – ObjectList.  public ObjectList Orders = new ObjectList(); } public class Order {  private int _orderID = 0;  public int OrderID  { get {return _orderID;} ...

Скачать
114140
0
0

... данных базы и их представление. С помощью встроенных средств и инструментов базы данных создается пользовательский интерфейс, позволяющий управлять процессами ввода, хранения, обработки, обновления и представления информации базы данных.[2] 4 ЭТАПЫ РАЗРАБОТКА ПРОГРАММНОГО ПРОДУКТА Данная программа создана для учета успеваемости студентов. Для работы с программой необходимо нужные группы или ...

Скачать
79258
97
1

... форматами поддерживает OLE DB Persistence Provider. Кроме сохранения, можно также загружать (восстанавливать) объект Recordset из файлов. Сохранение и последующая загрузка рекордсета из файла в формате XML дали возможность использования XML-документов в качестве баз данных. OLE DB Persistence Provider жестко задает формат результирующего XML-документа: для описания структуры и типов узлов всегда ...

0 комментариев


Наверх