VC++链接ADO数据库

第一次接触ADO数据库,自己的一点经验,在这里总结一下,以免后面忘记了,再重新来看。也许文字中有错误,请大家能给予指正。本文中使用的数据是access2000.

.h头文件中定义一下变量:

_ConnectionPtr  m_pConn;

_RecordsetPtr   m_pRecSet;

_CommandPtr     m_pComd;

.cpp源文件中实现数据库的连接

//连接数据库

bool MyDlg::ConnDb(void)

{

CString sPath;

CString Serror;

CString strSql;

//获取当前路径,并放在sPath中。

GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);

//释放上面函数中分配的buffer内存。

sPath.ReleaseBuffer();

int nPos;

//定位最后一个\\所在的位置

nPos=sPath.ReverseFind(‘\\‘);

//取出最后一个\\的左侧部分

sPath=sPath.Left(nPos);

//将数据库名字连接到sPath中。

sPath+="\\MyDateBase2000.mdb";

CFileFind finder;

//查看此数据库文件是否存在

if(!finder.FindFile(sPath)){

MessageBox("数据库文件不存在!",NULL,0);

return FALSE;

}

CString connStr;

HRESULT hRet;  //用来接收接口返回的代码部分,如果接口返回成功,则这个值为0,如果不

//成功,则包含返回的错误状态信息

try

{

//Connection代表一个windows应用程序和一个SQL服务数据库引擎实例的连接

//__uuidof获取Connection的唯一标识符

//CreateInstance创建一个对象实例

hRet=m_pConn.CreateInstance(__uuidof(Connection));

if(!SUCCEEDED(hRet)) return FALSE;

//CursorLocation 是ADODC对象的游标库的位置,默认值是adUseClient

m_pConn->CursorLocation = adUseClient;

connStr.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s",sPath);

//Open调用次函数初始化一个新建的CDaoDatabase对象,这个对象代表一个现有的数

//据库资源。

hRet=m_pConn->Open((_bstr_t)connStr,"","",adModeUnknown);

if(!SUCCEEDED(hRet)) return FALSE;

//m_pComd命令指针

hRet=m_pComd.CreateInstance(__uuidof(Command));

if(!SUCCEEDED(hRet)) return FALSE;

m_pComd->ActiveConnection = m_pConn;

//m_pRecSet记录集指针

//通过使用 Recordset 属性可以使用 ADO ADODB.Recordset 对象的方法、属性和事

//件。

hRet=m_pRecSet.CreateInstance(__uuidof(Recordset));

if(!SUCCEEDED(hRet)) return FALSE;

}

catch (_com_error e)

{

Serror.Format("数据库连接失败:%s",e.ErrorMessage());

AfxMessageBox(Serror);

}

}

//关闭数据库

void CLevelTestDialog::CloseDatabase()

{

m_pRecSet = NULL; //释放记录集

if(m_pConn->State)

{

m_pConn->Close(); //关闭连接

}

m_pConn= NULL;  //释放连接指针

}

时间: 2024-10-11 04:17:33

VC++链接ADO数据库的相关文章

VC++ 中ADO数据库的配置(Access2003-Access2007)

vc++ 中ADO数据库的配置(Access2003-Access2007) 1.       首先在StdAfx.h中添加以下代码引入数据库: #import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF") 2.    

vc++ 中ADO数据库的配置(SQLServer2005)

1.       首先在StdAfx.h中添加以下代码引入数据库: #import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF")rename("BOF","adoBOF") 2.       然后再VC6.0或VS2012中:插入->类,弹出一个窗口,类名叫

VC链接 access2007数据库 插入变量到表

前面 介绍:mfc 链接 access 2007 数据库 接下来就来说说怎么插入数据到access 2007 数据库(网上找了下,说的有些模糊,直接来看看效果) 主要步骤: 1 先用sprintf生成SQL语句 2 再执行SQL语句就可以了 效果如下: 主要代码: CString strConn,strDBName; //serv103_serv_link_acces(); if(m_pConnection->State) { m_pRecordset.CreateInstance("AD

VC 链接Access 数据库 插入变量到表

前面 介绍:mfc 链接 access 2007 数据库 接下来就来说说怎么插入数据到access 2007 数据库(网上找了下,说的有些模糊,直接来看看效果) 主要步骤: 1 先用sprintf生成SQL语句 2 再执行SQL语句就可以了 效果如下: 主要代码: CString strConn,strDBName; //serv103_serv_link_acces(); if(m_pConnection->State) { m_pRecordset.CreateInstance("AD

Vc access ado where 变量

这次变量主要针对 Mfc 的 Cstring 类型的变量(前面VC 链接Access 数据库 插入变量到表) 思路; 1 把cstring 类型 转为 string 2 string 转 char 数组 3 sprintf 写入数组 string 转 char 数组函数 char* zhuanhuan(std::string src) { char *dst = new char[255]; int i; int j=src.length(); for(i=0;i <src.length();i

用VC++操作ACESS数据库(创建数据库、建立新表、连接、增删查改)

转载http://liheng19870711.blog.163.com/blog/static/8716802201121724528232/进行修改 用VC++操作ACESS数据库(创建数据库.建立新表.连接.增删查改) 首先在StdAfx.h中包含如下头文件#import "C:\Program Files\Common Files\system\ado\msadox.dll"  // 创建数据库必用#import"C:\Program Files\Common Fil

VC++ 通过ADO连接数据库查询时返回空值报错的解决方案

当数据库的字段值允许为空时, 而且此时内容也为空时,则执行查询会出错,例如 CString str = pRecordset->GetFields()->GetItem((long)0)->GetValue(); 或者 str= pRecordset->GetCollect("posInfo"); 会弹出如下窗口提示出错! 更加奇怪的是  catch(...)也抓不到异常 今天碰着个问题算是头弄大了  最后终于弄好了 报错的原因:   在GetCollct返回了

使用事务码DBCO实现SAP链接外部数据库以及读取例程

一.链接SQLServer数据库 执行事务码DBCO,点新条目按钮,填写如下图所示信息 这里的连接信息很接近 Sql Server 的连接字符串,但是参数名略有不同.指定主机IP.数据库名即可. 二.链接DB2数据库 执行事务码DBCO,点新条目按钮,填写如下图所示信息 连接信息看上去比较直接,分别是数据库名.端口号.主机IP地址. 三.链接Oracle数据库 执行事务码DBCO,点新条目按钮,填写如下图所示信息 连接信息比较隐晦,必须在 SAP 应用服务器上安装 Oracle Client,然

php链接Mysql数据库

PHP链接Mysql数据库: 1:首先打开软件(WampServer再点击鼠标左键,再点phpMYAdmin最后打开的页面是 再填用户名,密码可以写不可写,最后再点执行就出现这个页面 再点test新建表名)最后就在mysql里面创建表格,在表格里面可以添加数据.查询数据.删除数据.修改数据 例: (1):添加数据INSERT INTO `message`(`id`, `user`, `title`, `content`, ` lda te`) VALUES ('','张三','学习php','飞