- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC与ADO数据库操作.
VC与ADO数据库操作
学研部的同志们,大家好! 想开一次学习会,实习时间冲突了,只好把文档发给大家看了。重点推荐李振龙的BMP读图教程! 尤其是大三GIS班的同志,注意了,可能实习用得上的!
ADO简介ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO都要容易使用,【】IDC_RESULT,顺便点一下Styles选项卡,把View改成Report,你可以看到对话框里的ListControl控件的样子已经变成带字段名的报表格式了。右击它,用ClassWizard添加成员变量,名字为m_LisCtrlResult。
按照上面的程序界面,加入一个编辑框(输入SQL语句用的),同上面添加m_LisCtrlResult成员变量一样,加入一个CString变量,名字为m_SqlText,还有一个“查询”按钮,把它叫为Query,双击它一下,VC会自动为它加入消息和函数的,名字也叫OnQuery(),等一下我们就用着那个函数的。
看到我们SpaceSoft的标志不?把你的照片换成BMP格式的,放上去吧!
定义一下要用着的变量:
class CPlaceNameDlg : public CDialog
{
// Construction
public:
_RecordsetPtr m_pRecordset; //定义一个RecordsetPtr对象,用来储存读出来的表
HRESULT hr; //查出后的表
Fields* fields; //储存查出后的字段
BSTR bstrColName; //储存一下字段名
long nRstCol; //SQL语句一共查出了几个字段?nRstCol个!
CString strColName[100]; //把查出的字段名转换成常见常用的CString类型,放在这个数组里边
……
}
//储存从数据库读出的数据,variant 变量能够存储所有系统定义类型的数据。
【】COM库的初始化我们可以使用AfxOleInit()来初始化COM库,这项工作通常在CWinApp::InitInstance()的重载函数中完成,请看如下代码:
BOOL CPlaceNameApp::InitInstance()
{
AfxOleInit();
}
【】用#import指令引入ADO类型库我们在stdafx.h中加入如下语句:(stdafx.h这个文件哪里可以找到?你可以在FileView中的Header Files里找到)
#import c:\program files\common files\system\ado\msado15.dll no_namespace rename(EOF,adoEOF)
这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。几点说明:(1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改(2) 在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
【】创建Connection对象并连接数据库首先我们需要添加一个指向Connection对象的指针PlaceName.h里加入下面一句,定义它:_ConnectionPtr m_pConnection; //前面带“_”的语句一般是VC本来没有的东西,是外来的
下面的代码演示了如何创建Connection对象实例及如何连接数据库并进行异常捕捉。BOOL CPlaceNameApp::InitInstance()
{
AfxEnableControlContainer();
AfxOleInit(); //使用OLE对象时,须加这一句
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance(ADODB.Connection); //创建Connection对
文档评论(0)