C++控制台程序连接sqlserver

ADO使用步骤方法:

1. 初始化COM库,引入ADO库定义文件

2. 用Connection对象连接数据库

3. 利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理

4. 使用完毕后关闭连接释放对象

开发环境:VC6、SQL Server2000

工程:Win32控制台应用程序

先创建数据库mysqltest,新建一张表StuMessage,其中包含列ID、StuName、StuSex、StuAge、StuScore

建立Win32控制台应用程序,空项目即可,这里以adotest为例,源文件为adotest.cpp

建立C++类,类名例为CADO。

在ADO.h的#prama once后添加:#import "c:\program files\common files\system\ado\msado15.dll no_namespace rename("EOF", "adoEOF")

添加两个变量:_ConnectionPtr m_pConnection

_RecordsetPtr m_pRecordset

添加三个函数:void Connect(void)

void ExitConnect(void)

_RecordsetPtr& GetRecordset(_bstr_t SQL)

在ADO.cpp中将添加的三个函数填满:

void CADO::Connect(void)

{

try{

::CoInitialize(NULL); //初始化COM环境

m_pConnection.CreateInstance(__uuidof(Connection)); //创建连接对象

HRESULT hr=m_pConnection->Open("Provider=SQLOLEDB;Data Source=LITTLEX;Initial Catalog=mysqltest;","nihao","111111",-1);

if(hr!=S_OK)

cout<<"Can not connect to the specified database!"<<endl;

}

catch(_com_error e){

cout<<e.Description()<<endl;

}

}

void CADO::ExitConnect(void)

{

if(m_pRecordset!=NULL){

m_pRecordset->Close();

m_pConnection->Close();

}

::CoUninitialize(); //释放环境

}

_RecordsetPtr& ADO::GetRecordset(_bstr_t SQL)

{

m_pRecordset=NULL;

CADO link;

try{

if(m_pConnection==NULL)

Connect();

m_pRecordset.CreateInstance(__uuidof(Recordset));

m_pRecordset->Open((_bstr_t)SQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);

}

catch(_com_error e){

cout<<e.Description()<<endl;

m_pRecordset=NULL;

return m_pRecordset;

}

return m_pRecordset;

}

主程序如下:(只是实现了简单的向数据库中写数据)

void main()

{

string sql;

CADO record;

record.Connect();

_RecordsetPtr m_pRecordset;

sql="select * from StuMessage";

_bstr_t bstr_t(sql.c_str());

m_pRecordset=record.GetRecordset(bstr_t);

m_pRecordset->AddNew();

m_pRecordset->PutCollect("ID", _variant_t("1"));

m_pRecordset->PutCollect("StuName", _variant_t("edward"));

m_pRecordset->PutCollect("StuSex", _variant_t("m"));

m_pRecordset->PutCollect("StrAge", _variant_t("17"));

m_pRecordset->PutCollect("StrScore", _variant_t("98"));

m_pRecordset->Update();

record.ExitConnect();

}

 

原文链接: https://www.cnblogs.com/littlex/archive/2012/07/03/2574782.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++控制台程序连接sqlserver

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/54272

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午5:27
下一篇 2023年2月9日 上午5:29

相关推荐