读书人

下面的代码含义是什么呢?不理解求教

发布时间: 2012-06-02 14:16:14 作者: rapoo

下面的代码含义是什么呢?不理解,求教

C/C++ code
void ADOConn::OnInitADOConn()                                   {    ::CoInitialize(NULL);                                  //初始化Com口    try    {       m_pConnection.CreateInstance("ADODB.Connection");       _bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=vcaa;Data Source=.";       m_pConnection->Open(strConnect,"","",adModeUnknown);    }                                                             //    @_1    我的理解是,如果连接信息不对,就进行catch捕获异常并提示,可不可以说,如果没有这里的try catch ,该方法如果只是初始化Com口,依然可以正常运行的,而实际不行,如果没有这段代码,会产生内存泄露的错误啊,那么这里的内存错误是由什么产生的呢?    catch(_com_error e)    {        AfxMessageBox(e.Description());    }}BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL){    _variant_t RecordsAffected; @_2 //这语句有什么用呢,不好意思,书中看到的,不明白    try    {        if(m_pConnection==NULL)             OnInitADOConn();   @_3 //这里进行初始化调用,什么时候需要执行该语句呢?        m_pConnection->Execute(bstrSQL,NULL,adCmdText);   @_4   //这句的作用呢?        return true;    }    catch(_com_error e)    {        e.Description();        return false;    }}


我想搞明白:
1.OnInitADOConn()的目的是什么?也就是说这个函数干了什么事啊。
2.见 @_1
3.见 @_2
4.见 @_3
5.见 @_4
呵呵,一个问题15分,还有20分,见者有份,谢谢啦


[解决办法]
1、.OnInitADOConn()这个函数目的是:连接数据库
2、try{}中如果连接数据库成功,则不会产生异常。若连接失败会捕获异常。
3、这句没看到在哪用,不知道做什么的...
4、if(m_pConnection==NULL)这句说明如果没有连接数据库的话要调用OnInitADOConn()连接数据库。
5、使用Execute方法操作数据表,bstrSQL为要执行SQL语句。
[解决办法]
连接数据库,并执行sql语句
[解决办法]
连接数据库,并执行sql语句
捕获异常,防止程序崩溃~

[解决办法]
连接数据库,捕获异常后弹出错误提示。

这个用的是ADO,基于COM的,你可以看一些相关资料,很多东西不是一个贴就能说懂的。
[解决办法]
1.OnInitADOConn()的目的是什么?也就是说这个函数干了什么事啊。
-------------------------
连接数据库啊,你要执行sql语句 当然要先连接数据库

[解决办法]
1:OnInitADOConn()
这个函数 里面先用Open连接到目标数据库 什么情况有异常出现呢?
连接失败了,或者网络不通了,或者数据库不存在
就会扑捉到COM的异常 然后把Description(错误的具体信息。。)MessageBox

2:
3:_variant_t RecordsAffected;//只是初始化一个变量。写代码的人没用到而已
像这样:Execute(bstrSQL,&RecordsAffected,adCmdText); //只是接收一个返回值什么的、。
4:什么时候用还要问啊?你想什么时候连接数据库 就什么时候用啊。。。
5:执行SQL语句
[解决办法]
1.OnInitADOConn()的目的是什么?也就是说这个函数干了什么事啊。
初始化数据库连接,每一个ADO的SQL的操作都依赖于一个_ConnectionPtr对象。

2.如果有错误,说明可能数据库没有成功连接。或者初始化

3.
_variant_t RecordsAffected
这一句的意思是,声明了一个_variant_t类型的 变量,这个变量用于保存SQL语句被执行后,比如update,或者delete,或者insert语句影响的记录数,一般是认为long型,_variant_t类型可以包括long型。

4 当调用ExecuteSQL前,COM环境和数据库连接没有创建时,被调用。;
5.执行一个SQL语句

读书人网 >VC/MFC

热点推荐