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

📄 subject_59308.htm

📁 vc
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<p>
序号:59308 发表者:阿鼠 发表日期:2003-11-07 09:27:03
<br>主题:如何在对话框中连接数据库?
<br>内容:基于对话框的工程,如何连接数据库呀.我在项目中加了个数据库的类,在先择数据源时我选择的是我在SQL中定义的数据库.并且先择了表.但当我在对话框中的LISTCTRL中进行与数据交换时,系统总是说数据库路径不对,或磁盘空间不足,但我空间多的是呀.在进行数据交换时我没有进行数据库的连接, 但好像数据库表类中有默认的连接.
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:阿鼠 回复日期:2003-11-07 09:33:23
<br>内容:我的代码是&nbsp;&nbsp;&nbsp;&nbsp; int i=0;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;pset.MoveFirst();<BR>&nbsp;&nbsp;do<BR>&nbsp;&nbsp;{&nbsp;&nbsp;<BR>&nbsp;&nbsp;CString s;<BR>&nbsp;&nbsp;listctr.InsertItem(i,s,0);<BR>&nbsp;&nbsp;s.Format(&#34;%d&#34;,pset.m_booknumber);<BR>&nbsp;&nbsp;listctr.SetItemText(i,1,pset.m_bookname);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_publishname);<BR>&nbsp;&nbsp;listctr.SetItemText(i,2,s);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_bookkind);<BR>&nbsp;&nbsp;listctr.SetItemText(i,3,s);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_bookauthor);<BR>&nbsp;&nbsp;listctr.SetItemText(i,4,s);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_bookborrowed);<BR>&nbsp;&nbsp;listctr.SetItemText(i,5,s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;i++;<BR>&nbsp;&nbsp;pset.MoveNext();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;}&nbsp;&nbsp;while(!pset.IsEOF());<BR>&nbsp;&nbsp;pset.Close();<BR>&nbsp;&nbsp;return ;<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>
回复者:江湖小虾米 回复日期:2003-11-07 09:36:34
<br>内容:对话框中的LISTCTRL中进行与数据交换的代码可以先不要,看看到底你的数据库连接成功没有,可以用其他的工具检验你的SQL语言写对了没有,如:数据库如果是oracle,就可以用<BR>sql*plus worksheet.
<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-11-07 09:41:39
<br>内容:单步调试看一下在哪里出错,最好在操作数据库的过程中加上try{}catch{}<BR>这段代码有可能出错在pset.MoveFirst()上出错。<BR>代码改为:<BR>&nbsp;&nbsp;int i=0;<BR>try<BR>{<BR> if(!pset.IsEOF())&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; pset.MoveFirst();<BR>&nbsp;&nbsp;while(!pset.IsEOF())<BR>&nbsp;&nbsp;{&nbsp;&nbsp;<BR>&nbsp;&nbsp;CString s;<BR>&nbsp;&nbsp;listctr.InsertItem(i,s,0);<BR>&nbsp;&nbsp;s.Format(&#34;%d&#34;,pset.m_booknumber);<BR>&nbsp;&nbsp;listctr.SetItemText(i,1,pset.m_bookname);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_publishname);<BR>&nbsp;&nbsp;listctr.SetItemText(i,2,s);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_bookkind);<BR>&nbsp;&nbsp;listctr.SetItemText(i,3,s);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_bookauthor);<BR>&nbsp;&nbsp;listctr.SetItemText(i,4,s);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_bookborrowed);<BR>&nbsp;&nbsp;listctr.SetItemText(i,5,s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;i++;<BR>&nbsp;&nbsp;pset.MoveNext();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;}&nbsp;&nbsp;<BR>&nbsp;&nbsp;pset.Close();<BR>}catch(CDBException *e)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp; e-&gt;delete();<BR>}<BR>return ;<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>
回复者:阿鼠 回复日期:2003-11-07 09:45:25
<br>内容:我现在PSET.MOVEFIRST()前加了一条语句PSET.OPEN()但运行后说是连接数据库有问题.但我的数据库类好像没错呀.在添加类时选项择的数据源是我定义的存在的SQL数据库呀.
<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-11-07 09:53:28
<br>内容:把连接数据库的代码也贴出来<BR>正确的使用ODBC连接数据库的代码应为:<BR>CDatabase db;<BR>db.OpenEx(DSN,CDatabase::onOdbcDialog);<BR>CRecordset pset;<BR>pset.pDatabase=&amp;db;<BR>CString strsql=&#34;select * from ....&#34;;<BR>pset.Open(CRecordset::snapshot,strsql);
<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-11-07 10:02:30
<br>内容:我换成了你的代码后,运行时出现0XAL出错而DELETE也出错了.
<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-11-07 10:04:56
<br>内容:CDatabase db;<BR>db.OpenEx(DSN,CDatabase::onOdbcDialog);<BR>CRecordset pset;<BR>pset.pDatabase=&amp;db;<BR>CString strsql=&#34;select * from ....&#34;;<BR>pset.Open(CRecordset::snapshot,strsql); <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>
回复者:浪际天涯 回复日期:2003-11-07 10:20:59
<br>内容:CDatabase db;<BR>try<BR>{<BR>&nbsp;&nbsp;db.OpenEx(DSN,CDatabase::onOdbcDialog);<BR>&nbsp;&nbsp;CRecordset pset;<BR>&nbsp;&nbsp;pset.pDatabase=&amp;db;<BR>&nbsp;&nbsp;CString strsql=&#34;select * from ....&#34;;<BR>&nbsp;&nbsp;pset.Open(CRecordset::snapshot,strsql); <BR>&nbsp;&nbsp;int i=0;<BR> if(!pset.IsEOF())&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; pset.MoveFirst();<BR>&nbsp;&nbsp;while(!pset.IsEOF())<BR>&nbsp;&nbsp;{&nbsp;&nbsp;<BR>&nbsp;&nbsp;CString s;<BR>&nbsp;&nbsp;listctr.InsertItem(i,s,0);<BR>&nbsp;&nbsp;s.Format(&#34;%d&#34;,pset.m_booknumber);<BR>&nbsp;&nbsp;listctr.SetItemText(i,1,pset.m_bookname);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_publishname);<BR>&nbsp;&nbsp;listctr.SetItemText(i,2,s);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_bookkind);<BR>&nbsp;&nbsp;listctr.SetItemText(i,3,s);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_bookauthor);<BR>&nbsp;&nbsp;listctr.SetItemText(i,4,s);<BR>&nbsp;&nbsp;s.Format(&#34;%.1f&#34;,pset.m_bookborrowed);<BR>&nbsp;&nbsp;listctr.SetItemText(i,5,s);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;i++;<BR>&nbsp;&nbsp;pset.MoveNext();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;}&nbsp;&nbsp;<BR>&nbsp;&nbsp;pset.Close();<BR>}catch(CDBException *e)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp; e-&gt;delete();<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>
回复者:阿鼠 回复日期:2003-11-07 10:22:52
<br>内容:我的程序是这样子的.首先由向导建立了一个基于对话框的工程.再向工程中添加了一个数据库类.并在对话框架中定义了一个数据库类的变量PSET再就是直接用了上面的代码,难到在此之前还要连接数据库吗.我没有连接数据库的代码.
<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-11-07 10:25:37
<br>内容:我只定义了这样一个类.<BR>// librarytable.h : Clibrarytable 类的实现<BR><BR><BR><BR>// Clibrarytable 实现<BR><BR>// 代码生成在 2003年11月5日, 18:21<BR><BR>#include &#34;stdafx.h&#34;<BR>#include &#34;librarytable.h&#34;<BR>IMPLEMENT_DYNAMIC(Clibrarytable, CRecordset)<BR><BR>Clibrarytable::Clibrarytable(CDatabase* pdb)<BR>&nbsp;&nbsp;&nbsp;&nbsp;: CRecordset(pdb)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_booknumber = L&#34;&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_bookname = L&#34;&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_publishname = L&#34;&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_bookkind = L&#34;&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_bookauthor = L&#34;&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_bookborrowed = L&#34;&#34;;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_nFields = 6;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_nDefaultType = dynaset;<BR>}<BR>//#error Security Issue: The connection string may contain a password<BR>// 此连接字符串中可能包含密码<BR>// 下面的连接字符串中可能包含明文密码和/或<BR>// 其他重要信息。请在查看完<BR>// 此连接字符串并找到所有与安全有关的问题后移除 #error。可能需要<BR>// 将此密码存储为其他格式或使用其他的用户身份验证。<BR>CString Clibrarytable::GetDefaultConnect()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;return _T(&#34;DRIVER=SQL Server;SERVER=(local);APP=Microsoft Open Database Connectivity;WSID=JXSD;DATABASE=mouse;Trusted_Connection=Yes&#34;);<BR>}<BR><BR>CString Clibrarytable::GetDefaultSQL()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;return _T(&#34;[dbo].[librarytable]&#34;);<BR>}<BR><BR>void Clibrarytable::DoFieldExchange(CFieldExchange* pFX)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;pFX-&gt;SetFieldType(CFieldExchange::outputColumn);<BR>// RFX_Text() 和 RFX_Int() 这类宏依赖的是<BR>// 成员变量的类型,而不是数据库字段的类型。<BR>// ODBC 尝试自动将列值转换为所请求的类型<BR>&nbsp;&nbsp;&nbsp;&nbsp;RFX_Text(pFX, _T(&#34;[booknumber]&#34;), m_booknumber);<BR>&nbsp;&nbsp;&nbsp;&nbsp;RFX_Text(pFX, _T(&#34;[bookname]&#34;), m_bookname);<BR>&nbsp;&nbsp;&nbsp;&nbsp;RFX_Text(pFX, _T(&#34;[publishname]&#34;), m_publishname);<BR>&nbsp;&nbsp;&nbsp;&nbsp;RFX_Text(pFX, _T(&#34;[bookkind]&#34;), m_bookkind);<BR>&nbsp;&nbsp;&nbsp;&nbsp;RFX_Text(pFX, _T(&#34;[bookauthor]&#34;), m_bookauthor);<BR>&nbsp;&nbsp;&nbsp;&nbsp;RFX_Text(pFX, _T(&#34;[bookborrowed]&#34;), m_bookborrowed);<BR><BR>}<BR>/////////////////////////////////////////////////////////////////////////////<BR>// Clibrarytable 诊断<BR><BR>#ifdef _DEBUG<BR>void Clibrarytable::AssertValid() const<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CRecordset::AssertValid();<BR>}<BR><BR>void Clibrarytable::Dump(CDumpContext&amp; dc) const<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CRecordset::Dump(dc);<BR>}<BR>#endif //_DEBUG<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>
回复者:阿鼠 回复日期:2003-11-07 10:39:02
<br>内容:d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(210): error C2065: “DSN” : 未声明的标识符<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(210): error C2039: “onOdbcDialog” : 不是“CDatabase”的成员<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(210): error C2039: “onOdbcDialog” : 不是“CDatabase”的成员<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(210): error C2039: “onOdbcDialog” : 不是“CDatabase”的成员<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(216): error C2018: 未知字符“0xa1”<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(216): error C2018: 未知字符“0xa1”<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(222): error C2039: “m_booknumber” : 不是“CRecordset”的成员<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(223): error C2039: “m_bookname” : 不是“CRecordset”的成员<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(223): error C2039: “m_bookname” : 不是“CRecordset”的成员<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(223): error C2039: “m_bookname” : 不是“CRecordset”的成员<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(228): error C2039: “m_bookauthor” : 不是“CRecordset”的成员<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f:\vcstdio\Vc7\atlmfc\include\afxdb.h(561) : 参见“CRecordset”的声明<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(230): error C2039: “m_bookborrowed” : 不是“CRecordset”的成员<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(239): error C2059: 语法错误 : “delete”<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>
回复者:阿鼠 回复日期:2003-11-07 11:03:12
<br>内容:d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(210): error C2065: “DSN” : 未声明的标识符<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(210): error C2039: “onOdbcDialog” : 不是“CDatabase”的成员<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(210): error C2065: “onOdbcDialog” : 未声明的标识符<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(211): error C2582: “operator =”函数在“CDatabase”中不可用<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(215): error C2018: 未知字符“0xa1”<BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(215): error C2018: 未知字符“0xa1”<BR><BR>d:\Documents and Settings\Administrator.JXSD\My Documents\Visual Studio Projects\1\1Dlg.cpp(238): error C2059: 语法错误 : “delete”<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>
回复者:阿鼠 回复日期:2003-11-07 11:04:21
<br>内容:db.OpenEx(DSN,CDatabase::onOdbcDialog)中的onOdbcDialog是什么呀

⌨️ 快捷键说明

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