⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_57889.htm

📁 vc
💻 HTM
字号:
<p>
序号:57889 发表者:紫君 发表日期:2003-10-28 20:15:42
<br>主题:关于创建ADO的数据库连接代码的疑问
<br>内容:在ADODemoView.h文件的类声明里加入如下代码:<BR>public:<BR>_ConnectionPtr m_connection;<BR>_RecordsetPtr m_recordset;<BR>_CommandPtr m_command;<BR>private:<BR>CString m_strSource;&nbsp;&nbsp;//存放用于数据库连接的连接字符串<BR>BOOL m_fConnected;&nbsp;&nbsp; //标志数据库连接成功的变量<BR><BR>在OnInitialUpadate函数里创建ADO的数据库连接和记录集对象,代码如下:<BR>HRESULT hr;<BR>_bstr_t source(&#34;Driver={SQL Server};Server=JACKIE;\<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uid=sa;Pwd=jackie1127;Database=membership&#34;);<BR>_bstr_t user(&#34;admin&#34;);&nbsp;&nbsp;<BR>_bstr_pwd(&#34;&#34;);<BR>try{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hr=m_connection.CreateInstance(_uuidof(Connection));<BR>&nbsp;&nbsp;&nbsp;&nbsp;//_uuidof(Connection)是什么意思?Connection是什么?<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(SUCCEEDED(hr))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hr=m_connection-&gt;Open(source,user,pwd,16);//user与pwd与source里的Uid和Pwd有什么不同,分别代表什么<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(SUCCEEDED(hr))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hr=m_recordset.CreateInstance(_uuidof(Recordset));//Recordset是什么?<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(SUCCEEDED(hr))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_fConnected=TRUE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_fConnected=FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>catch(_com_error &amp;e){<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageBox(e.ErrorMessage());<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_fConnected=FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>if(!m_fConnected) MessageBox(&#34;ADO数据库初始化失败!&#34;);<BR>else m_strSource=(const char*)source;<BR><BR><BR><BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:michael 回复日期:2003-10-28 20:56:56
<br>内容:&nbsp;&nbsp; ADO其实是一个COM。_uuidof(Connection)是要获取Connection对象的GUID<BR>&nbsp;&nbsp; Recordset是数据集对象。m_recordset是智能指针的实例<BR>_ConnectionPtr <BR>_RecordsetPtr<BR>_CommandPtr <BR>这三个都是智能指针。 
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:hurtmanzc 回复日期:2003-10-28 22:39:49
<br>内容:ADO模型包含许多COM对象,其中Connection、Recordset、Command是最基本的三个,分别用于连接数据库、处理数据库的记录集、执行命令操作数据库。<BR>_ConnectionPtr、_RecordsetPtr、_CommandPtr是三个智能指针(也是ADO提供的接口),对Connection、Recordset、Command三个对象进行了封装,按COM规范我们不能直接访问COM对象,而只能通过ADO接口(_ConnectionPtr、_RecordsetPtr、_CommandPtr)来访问COM对象(Connection、Recordset、Command)。智能指针创建相应的COM对象时,需要以该COM对象的GUID(全局唯一标识符)值为参数,_uuid()函数可以返回一个COM对象的GUID值。<BR><BR>至于用户名和密码,source里的Uid和Pwd是你登录SQL服务器的用户名和密码,user与pwd应该是你登录NT服务器的用户名和密码。<BR><BR>ADO非常复杂,最好还是买本书看。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:紫君 回复日期:2003-10-29 09:00:02
<br>内容:多谢两位大侠<BR><BR>michael来这里领分<BR>http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=57924&amp;forum_id=73
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -