資源簡介
對ODBC中的方法進行了封裝,包括數據庫連接的打開、關閉,結果集的操作等等,附有文檔
代碼片段和文件信息
//
//??MODULE:???odbccore.cpp
//
// AUTHOR:?Carlos?Antollini?
//
//??mailto:?cantollini@hotmail.com
//
// Date:?08/21/2001
//
// Version?1.11
//?
#include?“odbccore.h“
/////////////////////////////////////////////////////////////
//
//?CODBCDatabase?Class
//
void?CODBCDatabase::SQLAlloc()
{
SQLAllocHandle(SQL_HANDLE_ENV?SQL_NULL_HANDLE?&m_hEnv);
SQLSetEnvAttr(m_hEnv?SQL_ATTR_ODBC_VERSION?(void*)SQL_OV_ODBC3?0);?
SQLAllocHandle(SQL_HANDLE_DBC?m_hEnv?&m_hDbc);?
}
void?CODBCDatabase::SQLFree()
{
SQLFreeHandle(SQL_HANDLE_DBC?m_hDbc);
SQLFreeHandle(SQL_HANDLE_ENV?m_hEnv);
m_hDbc?=?NULL;
m_hEnv?=?NULL;
}
void?CODBCDatabase::Close()
{
m_bIsConnected?=?FALSE;
if(m_hDbc?==?NULL)
return;
SQLDisconnect(m_hDbc);
SQLFree();
}
BOOL?CODBCDatabase::Open(CHAR*?szDSNCHAR*?szUser?CHAR*?szPass)
{
SQLRETURN?ret;
if(m_lConnectionTimeout?>?0)
SQLSetConnectAttr(m_hDbc?SQL_ATTR_CONNECTION_TIMEOUT?(SQLPOINTER)m_lConnectionTimeout?0);
SQLSetConnectAttr(m_hDbc?SQL_ATTR_LOGIN_TIMEOUT?(SQLPOINTER)m_lLoginTimeout?0);
ret?=?SQLConnect(m_hDbc?
(SQLCHAR*)szDSN?
sizeof(szDSN)?
(SQLCHAR*)szUser?
sizeof(szUser)?
(SQLCHAR*)szPass?
sizeof(szPass));
m_bIsConnected?=?ret?==?SQL_SUCCESS?||?ret?==?SQL_SUCCESS_WITH_INFO;
return?m_bIsConnected;
}
BOOL?CODBCDatabase::Browse(UCHAR*?szConnStrIn?UCHAR*?szConnStrOut)
{
SQLRETURN?ret;
SWORD?swLenOut?=?0;
ret?=?SQLBrowseConnect(m_hDbc?
(SQLCHAR*)szConnStrIn?
sizeof(szConnStrIn)?
(SQLCHAR*)szConnStrOut?
MAX_BUFFER?
&swLenOut);
m_bIsConnected?=?ret?==?SQL_SUCCESS?||?ret?==?SQL_SUCCESS_WITH_INFO;
return?m_bIsConnected;
}
void?CODBCDatabase::SetConnectionTimeout(LONG?nSeconds)
{
if(m_hDbc)
SQLSetConnectAttr(m_hDbc?SQL_ATTR_CONNECTION_TIMEOUT?(SQLPOINTER)nSeconds?0);
m_lConnectionTimeout?=?nSeconds;
}
BOOL?CODBCDatabase::DriverConnect(CHAR*?szConnStr?CHAR*?szConnStrOut?HWND?hWnd?enum?drvCompletion?drvConn)
{
SQLRETURN?ret;
SQLSMALLINT?pcbConnStrOut;
if(drvConn?==?sqlPrompt?&&?hWnd?==?NULL)
return?FALSE;
if(m_lConnectionTimeout?>?0)
SQLSetConnectAttr(m_hDbc?SQL_ATTR_CONNECTION_TIMEOUT?(SQLPOINTER)m_lConnectionTimeout?0);
SQLSetConnectAttr(m_hDbc?SQL_ATTR_LOGIN_TIMEOUT?(SQLPOINTER)m_lLoginTimeout?0);
ret?=?SQLDriverConnect(m_hDbc?
hWnd?
(SQLCHAR*)szConnStr?
SQL_NTS?
(SQLCHAR*)szConnStrOut
sizeof(szConnStrOut)?
&pcbConnStrOut?
(SQLUSMALLINT)drvConn);
m_bIsConnected?=?ret?==?SQL_SUCCESS?||?ret?==?SQL_SUCCESS_WITH_INFO;
return?m_bIsConnected;
}
void?CODBCDatabase::SetReadOnly(BOOL?bReadOnly)
{
SQLSetConnectAttr(m_hDbc?SQL_ATTR_ACCESS_MODE?(SQLPOINTER)(bReadOnly??SQL_MODE_READ_ONLY?:?SQL_MODE_READ_WRITE)?0);
}
LONG?CODBCDatabase::GetConnectionTimeout()
{
LONG?nSeconds;
SQLGetConnectAttr(m_hDbc?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8720??2001-08-24?15:29??odbccore.cpp
?????文件???????4249??2001-08-24?15:29??odbccore.h
?????文件?????102400??2008-09-10?13:54??odbcconn.doc
-----------?---------??----------?-----??----
???????????????115369????????????????????3
- 上一篇:企業員工工資管理系統
- 下一篇:計算機網絡課程設計—ARQ協議模擬實驗
評論
共有 條評論