求教C++连接数据库的方法
似乎可以在代码中通过sql语句对数据库进行操作?求这样的方法教程!或者相关的书籍!
以下是引用wp231957在2015-12-16 11:06:09的发言:
网络里 这种代码 很少 大概是保密吧 很多人发的数据库相关代码都不是完整的
我这里有一段能够通过编译运行的代码
这段代码实现的功能就是输出了某个字段的全部记录
#include <stdio.h>
#include <windows.h>
#include <string.h>
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") //引入ADO库
int main(void)
{
_ConnectionPtr m_pConnection=NULL;
CoInitialize(NULL); //初始化com库
HRESULT hr = m_pConnection.CreateInstance("ADODB.Connection"); //创建Connection对象
if(SUCCEEDED(hr)) //创建数据库connection对象成功
{
hr = m_pConnection->Open("Driver={Microsoft dBase Driver (*.dbf)}","","",adModeUnknown);
if(SUCCEEDED(hr)) //连接数据库字符串成功
{
_RecordsetPtr MySet;
MySet.CreateInstance(__uuidof(Recordset));
MySet->Open("SELECT * FROM 123",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
_variant_t Holder;
while(!MySet->adoEOF)
{
Holder = MySet->GetCollect("XMMC");
if(Holder.vt!=VT_NULL)
printf("%s\n",(char*)_bstr_t(Holder));
MySet->MoveNext();
}
}
}
return 0;
}
网络里 这种代码 很少 大概是保密吧 很多人发的数据库相关代码都不是完整的
我这里有一段能够通过编译运行的代码
这段代码实现的功能就是输出了某个字段的全部记录
#include <stdio.h>
#include <windows.h>
#include <string.h>
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") //引入ADO库
int main(void)
{
_ConnectionPtr m_pConnection=NULL;
CoInitialize(NULL); //初始化com库
HRESULT hr = m_pConnection.CreateInstance("ADODB.Connection"); //创建Connection对象
if(SUCCEEDED(hr)) //创建数据库connection对象成功
{
hr = m_pConnection->Open("Driver={Microsoft dBase Driver (*.dbf)}","","",adModeUnknown);
if(SUCCEEDED(hr)) //连接数据库字符串成功
{
_RecordsetPtr MySet;
MySet.CreateInstance(__uuidof(Recordset));
MySet->Open("SELECT * FROM 123",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
_variant_t Holder;
while(!MySet->adoEOF)
{
Holder = MySet->GetCollect("XMMC");
if(Holder.vt!=VT_NULL)
printf("%s\n",(char*)_bstr_t(Holder));
MySet->MoveNext();
}
}
}
return 0;
}
你好!
这个代码我调试的时候到Myset->Open();处的断点时发生了错误,提示:
Unhandled exception at 0x76D6D8A8 in Project1.exe: Microsoft C++ exception: _com_error at memory location 0x0018FA18.
这是因为什么呢?