社区
数据库
帖子详情
请问如何使用RecordSet::Open()函数读取MS SQL数据库?(急!!)
ranman
2003-08-22 01:27:41
用Open打开SQL Server2000数据库该怎么做?谢谢!
...全文
117
2
打赏
收藏
请问如何使用RecordSet::Open()函数读取MS SQL数据库?(急!!)
用Open打开SQL Server2000数据库该怎么做?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ffit
2003-08-23
打赏
举报
回复
http://expert.csdn.net/Expert/topic/2179/2179200.xml?temp=.4352381
commandconque
2003-08-22
打赏
举报
回复
网上的文章非常多,你可以用搜索引擎找以下,我推荐一篇 http://cdlist.myrice.com
在Visual C++中用ADO进行数据库编程
ActiveX数据对象(ADO)是OLE DB上面的高层数据库API。我们在C++程序中也可以调用ADO。本文将在VC 6.0环境下做一个小小的例子解释如何使用ADO。
1. 生成应用程序框架并初始化OLE/COM库环境
创建一个标准的MFC AppWizard(exe)应用程序,然后在应用程序类的InitInstance函数中初始化OLE/COM库(因为ADO库是一个COM DLL库)。
BOOL CADOTestApp::InitInstance()
{ //初始化OLE/COM库环境
AfxOleInit();}
2. 引入ADO库文件
使用ADO前必须在工程的stdafx.h文件里用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下:
#include 〈comdef.h〉
#import ″c:\program files\common files\system\ado\msado15.dll″
no_namespace
rename (″EOF″, ″adoEOF″)
头文件comdef.h使我们的应用程序能够使用Visual C++中的一些特殊COM支持类,这些类使得处理OLE自治更为容易一些,OLE自治是ADO使用的数据类型。后三行使用#import指令在我们的应用程序中输入ADO类库定义。
ADO类的定义是作为一种资源存储在ADO DLL(msado15.dll)中,在其内部称为类型库。类型库描述了自治接口,以及C++使用的COM vtable接口。当使用#import指令时,在运行时Visual C++需要从ADO DLL中读取这个类型库,并以此创建一组C++头文件。这些头文件具有.tli 和.tlh扩展名,读者可以在项目的目录下找到这两个文件。在C++程序代码中调用的ADO类要在这些文件中定义。
程序的第三行指示ADO对象不使用名称空间。在有些应用程序中,由于应用程序中的对象与ADO中的对象之间可能会出现命名冲突,所以有必要使用名称空间。如果要使用名称空间,则可把第三行程序修改为: rename—namespace(″AdoNS″)。第四行代码将ADO中的EOF(文件结束)更名为adoEOF,以避免与定义了自己的EOF的其他库冲突。
3.利用智能指针进行数据库操作
在CaboutDlg头文件中定义两个ADO智能指针类实例,并在对话框中加入一个ListCtrl。
—ConnectionPtr m—pConnection;
—RecordsetPtr m—pRecordset;
ClistCtrl m—List;
ADO库包含三个智能指针:—ConnectionPtr、—CommandPtr和—RecordsetPtr。
—ConnectionPtr通常被用来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。
—CommandPtr返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。在使用—CommandPtr接口时,可以利用全局—ConnectionPtr接口,也可以在—CommandPtr接口里直接使用连接串。
—RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定、游标控制等。
在OnInitDialog()中加入以下代码:
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
—variant—t TheValue;
m—List.ResetContent();
m—pConnection.CreateInstance(—uuidof(Connection));
m—pRecordset.CreateInstance(—uuidof(Recordset));
try{
m—pConnection-〉Open(″DSN=ADOTest″,″″,″″,0); //连接叫作ADOTest的ODBC数据源
m—pRecordset-〉Open(″SELECT FROM BlockDefine″,(IDispatch)m—pConnection,
:adOpenDynamic,
adLockOptimistic,
adCmdText);
//执行SQL语句得到一个记录集
while(!m—pRecordset-〉adoEOF)
//遍历所有记录
{
TheValue = m—pRecordset-〉GetCollect(″BlockIndex″);
//得到字段BlockIndex的值
if(TheValue.vt!=VT—NULL)
m—List.AddString((char)—bstr—t(TheValue)); //将该值加入到列表控件中
m—pRecordset-〉MoveNext();
: }
m—pRecordset-〉Close();
m—pConnection-〉Close();
}
catch(—com—error e) //异常处理
{
CString Error = e-〉ErrorMessage();
AfxMessageBox(e-〉ErrorMessage());
}
m—pRecordset = NULL;
m—pConnection = NULL;
return TRUE; // return TRUE unless you set the focus to a control
}
程序中通过—variant—t和—bstr—t转换COM对象和C++类型的数据, —variant—t类封装了OLE自治VARIANT数据类型。在C++中使用—variant—t类要比直接使用VARIANT数据类型容易得多。
好,编译后该程序就能运行了,但记住运行前要创建一个叫ADOTest的ODBC数据源。该程序将把表BlockDefine中的BlockIndex字段值显示在列表控件中。
C++获取
SQL
Server
数据库
内容
.C++获取
SQL
Server
数据库
内容
C++
使用
ADO连接
SQL
Server
数据库
源代码
C++
使用
ADO连接
SQL
Server
数据库
源代码,适合初学者,欢迎下载!可以在这基础上重新进行封装
使用
VB通过
读取
INI文件连接
SQL
数据库
的实例
通过
读取
INI文件中的
SQL
SERVER配置信息来
读取
SQL
SERVER
数据库
word vba 如何连接
sql
数据库
上面是一个vba连接
数据库
的列子,很简单的一个,上面有教你如何连接
数据库
的。
msado15中C++连接
数据库
用到的类和
函数
C++通过ado连接
数据库
时需要用到各类和
函数
,由于封装在msado15.dll中,此为各类和
函数
接口,参数集声明及定义在另一文档中。
数据库
4,017
社区成员
39,807
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章