Члены класса cDatabase::m_hdbc
Указатель на подсоединенный ODBC источник данных. Пример:
Ц использование m_hdbc для прямого вызова ODBC API. // m_db является объектом CDatabase; mhdbc - это его член класса nRetcode = ::SQLGetInfo( m_db.m_hdbc, SQL_ODBC_SQL_CONFORMANCE,
&nValue, sizeof( nValue ), &cbValue );
CDatabase();
Конструктор объекта CDatabase.
virtual BOOL OpenEx (LPCTSTR IpszConnectString, DWORD dwOptions - 0); throw( CDBException, CMemoryException );
Метод подсоединяет к объекту CDatabase указанный источник данных -открывает базу данных.
При успешном завершении метод возвращает ненулевое значение. Если пользователь щелкает по кнопке Cancel в диалоге, запрашивающем дополнительную информацию, то метод возвращает значение 0. В остальных случаях бросается исключение.
Параметры:
IpszConnectString - определяет ODBC строку подключения. Она включает источник данных и некоторую дополнительную информацию, такую, как идентификатор пользователя и пароль.
Например: "DSN=SQLServer_Source;UID=Ul;PWD=userl".
Если указать параметр ipszConnectString равным NULL, то появится стандартный диалог Data Source, дающий возможность пользователю вы- I брать доступный источник данных.
dwOptions - по умолчанию параметр равен нулю, что предполагает что база данных будет открыта с разделяемым доступом и с правами записи, ODBC Cursor Library DLL не будет загружена, ODBC-диалог будет появляться только тогда, когда недостаточно информации для выполнения подключения к базе данных. Этот параметр является битовой маской, определяемой комбинацией следующих значений: CDatabase::openExclusive, CDatabase::openReadOnly, CDatabase::useCursorLib, CDatabase::noOdbcDialog, CDatabase::forceOdbcDialog. Пример:
|
II Встраивание объекта CDatabase в производный класс документа CDatabase m_dbBData(); // Подсоединение объекта CDatabase к источнику данных только на чтение m_dbBData.OpenEx( _T( "DSN=MYDATASOURCE;UID=U1"), CDatabase::openReadOnly | CDatabase::noOdbcDialog )); |
virtual void CIose( );
Метод отсоединяет подключенную базу данных. Предварительно следует закрыть все наборы записей, ассоциированных с базой данных.
Все операции AddNew и Edit над наборами записей будут прерваны и выполнен откат незавершенных транзакций.
После отсоединения к объекту CDatabase можно подключать другой источник данных.
const CString& GetConnect( ) const;
Метод возвращает строку подключения, использованную для подсоединения к объекту CDatabase источника данных. CString GetDatabaseName( ) const;
Метод возвращает имя текущей подсоединенной базы данных. Это не одно и то же со значением DSN, указываемым для методов ОрепЕх и Open, и зависит от ODBC.
В случае возникновения ошибки метод вернет пустую строку. BOOL CanTransact() const;
Метод позволяет определить, можно ли использовать транзакции для базы данных.
void SetLoginTimeout( DWORD dwSeconds );
Метод устанавливает интервал времени, по истечении которого попытка подсоединения к источнику данных будет отменена.
По умолчанию это значение равно 15 с.
Отметим, что не все базы данных поддерживают это значение.
BOOL BeginTrans();
Метод устанавливает начало транзакции.
Транзакция может включать один или несколько вызовов методов AddNew, Edit, Delete, Update для объекта класса CRecordset.
Для завершения транзакции вызывается метод CommitTrans для подтверждения всех сделанных изменений в источнике данных, или Rollback - для отмены.
Отметим, что в зависимости от ODBC-драйвера при открытии набора записей до начала транзакции могут возникнуть проблемы при попытке отката транзакции.
Дополнительно при начале транзакции может быть выполнена блокировка используемого набора записей зависимости от драйвера ODBC. BOOL CommitTrans();
Метод выполняет завершение транзакции.
Отметим, что для набора записей поддерживается только один уровень транзакций. Вложенные транзакции использовать нельзя.
