C++连接Access数据库
来源:互联网 发布:matlab分水岭算法 编辑:程序博客网 时间:2024/04/29 01:34
#include <iostream>using namespace std;/*#import生成文件 msado15.tlh,默认是有namespace ADODB {}所有内容都包在这个名字空间中。用了no_namespace则生成的头文件中没有namespace,所有内容是全局的,否则ADODB.Connectionrename的意思就是改名了,rename("EOF","adoEOF")将EOF改名为adoEOF,以免和C语言里的EOF重名*/#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")void main(){CoInitialize(NULL); //初始化OLE/COM库环境//在引入ado并初始化成功com库后,就可以使用智能指针了_ConnectionPtr m_pConnection; _RecordsetPtr m_pRecordset; HRESULT hr; try {hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 // hr = m_pConnection.CreateInstance(__uuidof(Connection));//no_namespace的好处 if(SUCCEEDED(hr)) { hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown); //access2003//hr = m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=test.accdb","","",adModeUnknown); //access2007printf("成功连接数据库\n"); } } catch(_com_error e)///捕捉异常 { printf("连接数据库失败!\n"); return ; }m_pRecordset.CreateInstance(__uuidof(Recordset)); //实例化结果集对象 //执行sql语句 try { char sql[300]; memset(sql,0,300); strcat(sql,"SELECT * FROM lyrtest"); m_pRecordset->Open(sql, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); } catch(_com_error* e) { wprintf(e->ErrorMessage()); if(m_pConnection->State) { m_pConnection->Close(); m_pConnection= NULL; }CoUninitialize();return; } try { //若结果为空,结束 if(m_pRecordset->BOF) { printf("表内数据为空!"); if(m_pConnection->State) { m_pRecordset->Close(); m_pRecordset = NULL; m_pConnection->Close(); m_pConnection= NULL; } CoUninitialize();return; } cout<<"---------------------------------"<<endl;cout<<"数据库的内容为:"<<endl;//游标定位到第一条记录m_pRecordset->MoveFirst(); _variant_t var[2]; //从结果集中取出的数据放到var中char *t1[2]; while(!m_pRecordset->adoEOF){ var[0]= m_pRecordset->GetCollect("ID"); if(var[0].vt != VT_NULL) { t1[0] = _com_util::ConvertBSTRToString((_bstr_t)var[0]); } printf(t1[0]);printf("\t");var[1]= m_pRecordset->GetCollect("Name"); if(var[1].vt != VT_NULL) { t1[1] = _com_util::ConvertBSTRToString((_bstr_t)var[1]); } printf(t1[1]);printf("\n"); m_pRecordset->MoveNext(); } } catch(_com_error *e) { wprintf(e->ErrorMessage()); } //退出程序时的处理 if(m_pConnection->State){ m_pRecordset->Close(); m_pRecordset = NULL; m_pConnection->Close(); m_pConnection= NULL; } CoUninitialize();cout<<"---------------------------------"<<endl;return; }
0 0
- C语言连接 Access 数据库
- .Net(c#) 连接 ACCESS 数据库
- c#.net连接access数据库
- asp.net(c#)连接ACCESS数据库
- asp.net(C#)连接access数据库
- C语言ODBC连接ACCESS数据库
- PERL连接ACCESS数据库
- jsp连接ACCESS数据库
- javascript连接access数据库
- PHP连接ACCESS数据库
- asp连接Access数据库
- JavaScript连接Access数据库
- Java连接Access数据库
- C#连接Access数据库
- ASP连接Access数据库
- Delphi连接access数据库
- access连接远程数据库
- PHP连接ACCESS数据库
- 一道关于大数的ACM题的讨论过程——沟通与发散思维
- 传智播客的学习记录一
- 0..0
- POJ1064 Cable master
- Doing Homework again --贪心
- C++连接Access数据库
- IE 高级设置里面一片空白,没有任何选项
- 圆与线段碰撞检测
- C++ 面向对象 继承与派生
- 变量和基本类型
- class_create & class_device_create
- 从一关联到多的查询和从多关联到一的查询来简单说说关联查询
- Linux命令简介(文件内容操作命令、归档和压缩操作命令)
- 百度暑期实习二面&三面