📄 subject_66800.htm
字号:
<p>
序号:66800 发表者:libaogang 发表日期:2003-12-26 16:26:27
<br>主题:高手请帮忙!DLL中ADO在那里初始化COM库!
<br>内容:我在BOOL CMyDllApp::InitInstance() <BR>{<BR> // TODO: Add your specialized code here and/or call the base class<BR> if(!AfxOleInit())<BR> AfxMessageBox("Init Com Failure");<BR> CoInitialize(NULL);<BR> return CWinApp::InitInstance();<BR>}<BR>初始化了COM,怎么在创建 m_pRecordset.CreateInstance("ADODB.Recordset");时侯仍返回空值!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:zhangquan 回复日期:2003-12-26 19:59:20
<br>内容:你用了AfxOleInit(),还调用CoInitialize(NULL)干什么
<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>回复者:kobo 回复日期:2003-12-26 22:07:31
<br>内容:我使用ADO步骤如下:<BR>1,在StdAfx.h中加入:<BR>#pragma warning(push)<BR>#pragma warning(disable : 4146)<BR>#import "C:\Program Files\Common Files\System\Ado\msado15.dll " no_namespace rename("EOF", "IsEOF")<BR>#pragma warning(pop) <BR><BR>2,在App类中加入:<BR>BOOL CEmpMSApp::InitInstance()<BR>{<BR> <BR> if(!AfxOleInit()) ///OLE初始化<BR> {<BR> AfxMessageBox("OLE初始化失败!");<BR> return FALSE;<BR> }<BR> AfxEnableControlContainer();<BR> 。。。<BR>}<BR>3,在CEmpMSView.h中加入:<BR>class CEmpMSView : public CListView<BR>{<BR> ......<BR><BR><BR>//声明ADO数据库操作对象<BR>public:<BR> _ConnectionPtr m_connection;<BR> _RecordsetPtr m_recordset;<BR> _CommandPtr m_command;<BR><BR>private:<BR> CString m_strSource;//存放数据库连接字符串<BR> BOOL m_fConnected;//标志数据库连接成功与否的BOOL变量<BR><BR> ......<BR>}<BR>4,在<BR>void CEmpMSView::OnInitialUpdate()<BR>{<BR> CListView::OnInitialUpdate();<BR><BR><BR> HRESULT hr;<BR> _bstr_t source("Driver={SQL Server};Server=DOLEPH;Uid=sa;Pwd=;Database=EmpMS");<BR> _bstr_t user("Administrator");<BR> _bstr_t pwd("buddy");<BR> try<BR> {<BR> hr=m_connection.CreateInstance(_uuidof(Connection));<BR> if(SUCCEEDED(hr))<BR> hr=m_connection->Open(source,user,pwd,16);<BR> if(SUCCEEDED(hr))<BR> hr=m_recordset.CreateInstance(_uuidof(Recordset));<BR> if(SUCCEEDED(hr))<BR> m_fConnected=TRUE;<BR> else<BR> m_fConnected=FALSE;<BR> }<BR> catch(_com_error &e)<BR> {<BR> MessageBox(e.ErrorMessage());<BR> m_fConnected=FALSE;<BR> }<BR> if(!m_fConnected) MessageBox("ADO数据库初始化失败!");<BR> else m_strSource=(const char*)source;<BR><BR>}<BR><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>
回复者:libaogang 回复日期:2003-12-27 08:55:19
<br>内容:再请教个问题,按照上面的代码,编译是没有问题的,连接SqlServer数据库也可以返回数据库的名字,但在我查询的时侯总是出现数据库似乎已经关闭的错误,导致查询出错!返回不了结果!<BR>kobo 哥,有没有现成的ADO-SqlServer的程序,发一份给我!小弟不胜感激!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:libaogang 回复日期:2003-12-27 08:57:00
<br>内容:我的邮箱:qing_zhu1@sina.com
<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 + -