使用_ConnectionPtr很简单的问题,求解

zhxingway 2012-06-13 05:17:59
我在用Ado连接数据库的时候,
在Vc6里面建了一个工程,Stdafx.h文件中导入了

//导入ADO组件
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")



然后在主窗口的初始化函数中加入:
AfxOleInit();     //启动COM//add

_ConnectionPtr MyDb;
MyDb.CreateInstance(__uuidof(Connection));
MyDb->Open("DSN=SAMS_SVR;UID=admin;PWD=admin","","",-1);//Open函数那里有红色的下划线,并看不到函数说明
MyDb->//?这里没有Open可以选,只有Cancel和raw_Cancel两个可以选,是怎么回事呢。如下图




求解
...全文
392 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyx100 2012-06-14
  • 打赏
  • 举报
回复
using namespace ADODB;?
zhxingway 2012-06-14
  • 打赏
  • 举报
回复
另外我把代码复制到另外一台Xp的机器,然后用VC6打开,也是那些函数联想不出来哦。
还有,今天我装了个新版本的Vc助手,还是不行。
zgl7903 2012-06-14
  • 打赏
  • 举报
回复
这个应该是VAX不识别而已吧 goto define 应该可以看到

把 import 时的 no_namespace 去掉
程序里加 using namespace ADODB 试试看

gold_water 2012-06-14
  • 打赏
  • 举报
回复
win7下没玩过这个,估计是系统环境问题;
zhxingway 2012-06-14
  • 打赏
  • 举报
回复
我很郁闷,用MFC,操作一下数据库都这么麻烦,而且函数都联想不出来
zhxingway 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

这个应该是VAX不识别而已吧 goto define 应该可以看到

把 import 时的 no_namespace 去掉
程序里加 using namespace ADODB 试试看
[/Quote]
define 可以看到啊。
我在主窗口的头文件那里添加using namespace ADODB;
编译时候出现一些错误,后来排除后,情况还是没有解决。
zhxingway 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

貌似是Win7
VC6一堆毛病
[/Quote]

是Win7 64位的啊。
另外用VS2008也是一樣啊,不止是VC6會這樣。求解
zhxingway 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

有时候编译器可能反应不过来,你可以关掉在重新试试
[/Quote]

沒用,我把它轉換成VS2008工程也是這樣,下拉列表出不來。重啟,清空助手緩存都沒用。
zhxingway 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你添加了这个没有
using namespace ADODB;?
[/Quote]
我已經在引入的時候聲明了不用命名空間了啊?
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename
stjay 2012-06-13
  • 打赏
  • 举报
回复
貌似是Win7
VC6一堆毛病
lang14 2012-06-13
  • 打赏
  • 举报
回复
有时候编译器可能反应不过来,你可以关掉在重新试试
  • 打赏
  • 举报
回复
你添加了这个没有
using namespace ADODB;?
我花钱买的,结果没用上,太亏了 本系统采用ADO来访问SQL数据库,这里充分应用了C++类封装的功能,根据本系统应用的范围,将访问数据库的功能函数封装在一个类CMyDatabase。 正如前所述,ADO是访问数据库的一个方法,它提供了不同的接口。ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。 _ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。对于要返回记录的操作通常用_RecordserPtr来实现。而用_ConnectionPtr操作时要想得到记录条数得遍历所有记录,而用_RecordserPtr时不需要。 _CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。在使用_CommandPtr接口时,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。如果你只执行一次或几次数据访问操作,后者是比较好的选择。但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_ConnectionPtr接口创建一个数据连接,然后使用_CommandPtr接口执行存储过程和SQL语句。 _RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtrconnection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr接口 ,然后使用_RecordsetPtr执行存储过程和SQL语句。  根据这些,我们将数据库的各种操作封装到CMyDatabase类里。几个主要函数说明如下:

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧