下面的代码含义是什么呢?不理解,求教C/C++ codevoid ADOConn::OnInitADOConn(){::CoInitialize(NULL)//初
下面的代码含义是什么呢?不理解,求教
C/C++ codevoid 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语句