virtual BOOL Open
(
LPCTSTR lpszDSN,
BOOL bExclusive = FALSE,
BOOL bReadOnly = FALSE,
LPCTSTR lpszConnect = “ODBC”,
BOOL bUseCursorLib = TRUE
)
throw( CDBException, CMemoryException )
参数含义:
lpszDSN指定了数据源名,在lpszConnect参数中也可包括数据源名,此时lpszDSN必需为NULL,若在函数中未提供数据源名且使lpszDSN为NULL,则会显示一个数据源对话框,用户可以在该对话框中选择一个数据源.
bExclusive说明是否独占数据源,由于目前版本的类库还不支持独占方式,故该参数的值应该是FALSE,这说明数据源是被共享的.
bReadOnly若为TRUE则对数据源的连接是只读的.
lpszConnect指定了一个连接字符串,连接字符串中可以包括数据源名、用户帐号(ID)和口令等信息,字符串中的"ODBC"表示要连接到一个ODBC数据源上.
bUseCursorLib若为TRUE,则会装载光标库,否则不装载,快照需要光标库,动态集不需要光标库.
参考代码:
#include "afxdb.h"
CDatabase database
CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)"
CString sDsn
CString sFile = "c://works//ReadDB//Test.mdb"//Change path here
// Create ODBC connection dinamically
sDsn.Format("ODBCDRIVER={%s}DSN=''DBQ=%s",sDriver,sFile)
// Open the database
database.Open(NULL,false,false,sDsn)
数据库编程的思路都是一致的:打开数据库连接-》执行SQL语句-》获得查询结果-》关闭数据库连接,不同的数据库访问技术有不同的要求,比如用C API诘问MySql数据库的时候还得释放查询结果集。ODBC访问数据库得配置数据源
配置ODBC数据源:打开控制面板下的“数据源”,d出“ODBC数据源管理器”,选择DSN选项卡-》添加->你选择你的SQL Server选项,单击完成。如图然后你再按照向导提示添加。
代码中用ODBC访问数据库你得加上afxdb.h头文件,
用CDataBase 类连接数据库、CRecordSet类查询记录。
现在在VC访问数据库常用的是ADO访问,你可以找一下我前面的回答有ADO访问数据库的步骤。
CDataBase m_cODBCDb
用CDataBase类的OpenEx()函数打开数据库连接。连接字符串你自己构造一下。
定义一个与上面数据库相关的查询对象
CRecordSet m_cODBCRec(&m_cODBCDb)
用这个查询对象的open方法就可以执行SQL语句与数据库交互了
现在用VC、MFC访问数据库常用的技术是ADO,学学这个吧。难点、但很实用!
导入ADO库
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")
2、用导入的动态库的指针 *** 作数据库.
打开数据库连接
_ConnectionPtr m_pConn// 数据库连接指针
// 创建Conneciton对象
m_pConn.CreateInstance(_T("ADODB.Connection"))
用ConnectionPtr 的open方法m_pConn->Open(_bstr_t(m_sConn),
_T(""), _T(""), lOptions))
m_sConn为你连接数据库的信息,你应该按照你的要求打开数据库
然后你用打开的那个连接进行 *** 作数据库。比如
_RecordsetPtr pRec = m_pConn->Execute(_bstr_t(pszSql), NULL, CmdText)
pszSql 就你要 *** 作数据库的SQL语句。在这个SQL语句里你可以创建表、更新表等。
用ADO访问的时候要求初始他COM库和释放COM对象
// 初始化COM环境(库)
::CoInitialize(NULL)
//释放COM对象
::CoUninitialize()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)