#include
<iostream>
#include
<string>
using
namespace
std
//导入ADO动态链接库,必须的
#import
"c:\program
files\common
files\system\ado\msado15.dll"no_namespace
rename("EOF","adoEOF")
void
main()
{
_ConnectionPtr
m_pConnection
//创建智能指针,必须的
m_pConnection.CreateInstance(__uuidof(Connection))
//或
m_pConnection.CreateInstance("ADODB.Connection")
CoInitialize(NULL)
//初始化COM,必须的
try
{
//连接字符串,Student为数据库名
m_pConnection->ConnectionString="Provider=SQLOLEDB.1Password=saPersist
Security
Info=TrueUser
ID=saInitial
Catalog=Student"
m_pConnection->Open("
","
","
",adModeUnknown)
//调用Open方法
cout<<"1"<<endl
}
catch(_com_error
e)
//捕获连接异常
{
cout<<"数据库初始化错误!
"<<endl
return
}
cout<<"连接成功!"<<endl
_RecordsetPtr
pRst(__uuidof(Recordset))
pRst=m_pConnection->Execute("select
*
from
student",NULL,adCmdText)//使用Execute方法,student为表名
if(!pRst>adoEOF)
pRst>MoveFirst()
else
{
cout<<"表内数据为空"<<endl
return
}
//
读入库中各字段并加入列表框中
_variant_t
var
string
strName
while(!pRst>adoEOF)
{
var
=
pRst>GetCollect("Name")
if(var.vt
!=
VT_NULL)
strName
=
(LPCSTR)_bstr_t(var)
pRst>MoveNext()
}
//关闭
pRst->Close()
m_pConnection->Close()
pRst.Release()
m_pConnection->Release()
CoUninitialize()
//释放COM
}
1、C/C++与数据库交互,像 mssql/ mysql / oracle 等,一般都有成熟的第三方库,这些库里面无非就是封装了与数据库通讯的方式和通讯协议搜一下要用的数据库相关的 API 文档,会说得很清楚任何文件都是二进制数据,关键是数据存储的组织方式通用扩展名的文件,像gif/doc/jpg/wav,格式都是固定的。
2、举个例子,连接SQL:
// 打开数据库strDBClass.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0Data Source=%sJet OLEDB:Database Password=%s"), m_strUnEntryptMdbFilePath,m_strMDBPassword)
// 创建连接
HRESULT hr = m_pConnection.CreateInstance(_uuidof(Connection))
_ConnectionPtr m_pConnection->Open(m_strDBClass,_T(""),_T(""),adConnectUnspecified)
// 声明表单指针
_RecordsetPtr pBandRecordset
pBandRecordset.CreateInstance(__uuidof(Recordset))
// 执行语句
CString strSQL(L"SELECT * FROM [Band]")
m_pConnection->Execute((LPCTSTR)strSQL,NULL,0)
// 提取某一项 例如BandInfo
int iBandInfo = wcscmp(colum, L"BandInfo")
while(!recordsetPtr->adoEOF)
{
var = recordsetPtr->GetCollect(colum)
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var)
recordsetPtr->MoveNext()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)