关于ADO和ODBC的疑惑!(用ADO必须做类型的转换么?还有下文请进,谢谢!)

guokai1217 2004-08-06 11:22:07
以前一直做B/S的,和数据库交互用ADO比较顺手了。
最近做VC/MFC项目,和数据库交互这一块让我很晕。有点初级的问题向大家请教:
1、ADO和ODBC到底用那种方式好一些?

2、ADO必须要用 #import预编译,也不知道对 COM 初始化以后到底好不好用?

3、ADO返回的变量类型应该是:Variant类型的,在程序里面处理的时候是不是还要某种确定的类型来回转换?比如说取出来以后要把Variant转化成CString类型的再处理?(这一过程需要手工操作么?)

4、我本来的想法是新建一个数据库的相关类,比如.
class Data
{
成员方法一:数据库连接
成员方法二:返回一个记录集对象(参数:sql命令,conn对象)
//不需要返回记录集,返回命令执行状态 TRUE/FALSE
成员方法三:执行对数据库的操作(参数:sql命令,conn对象)
}

我在文档类里面处理的时候,只要向Data对象传递sql指令就可以了么,为什么书上的例子都是把表里的字段声明成 Data类中的成员变量?难道这样更符合面向对象的思想么?为什么?


...全文
106 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kudeet 2004-08-06
  • 打赏
  • 举报
回复
1 ADO好些
2 不知道你的意思是什么,用ADO是必须要初始化COM库的。
3 是自己转换,方式可以看看
http://dev.csdn.net/develop/article/12/12365.shtm
4 书上的例子你说的是记录集类吧,一般都是在绑定使用
guokai1217 2004-08-06
  • 打赏
  • 举报
回复
谢谢楼上的。
麻烦哪位大侠能回答一下我的问题!
captainwh 2004-08-06
  • 打赏
  • 举报
回复
ADO没在vc里用过,不过dao是这样的,返回的数据类型是Variant, 需要自己取出其中的数据,这个真是很讨厌的事情
guokai1217 2004-08-06
  • 打赏
  • 举报
回复
水平有限,请大家多多指教。谢谢!
guokai1217 2004-08-06
  • 打赏
  • 举报
回复
奇快,再管理里面已经看到给分了,为什么这里显示不出来!
guokai1217 2004-08-06
  • 打赏
  • 举报
回复
十分感谢楼上两位的热心回答,给分先。有问题在开帖!
guokai1217 2004-08-06
  • 打赏
  • 举报
回复
十分感谢楼上两位的热心回答,给分先。有问题在开帖!
Kudeet 2004-08-06
  • 打赏
  • 举报
回复
书上的例子很多时候都是绑定在用。如果把数据库的操作封装起来也很好。至于是不是更符合面向对象的设计,个人认为是吧。
key20003 2004-08-06
  • 打赏
  • 举报
回复
1.ado更好,ado的核心就是com

2.ado有三种方法调用,#import这种比较简单,在中国用的人多,用CoInitialize(NULL)初始化,CoUninitialize()释放

3.正如你所说的,的确要强制类型转化,详见_variant_t类

4.完全可以自己建立相关的类来处理DB,但我想应该不止一个类,起码两个

5.至于把表里的字段声明成 Data类中的成员变量是否符合oo属于理论范畴,那样做把数据库也变成了对象,好多java的持久层框架(如Hibernate,jdo)也的确是那样做的
guokai1217 2004-08-06
  • 打赏
  • 举报
回复
谢谢 laiyiling(最熟悉的陌生人),再问一下你说的:
-------------------------
4 书上的例子你说的是记录集类吧,一般都是在绑定使用
-------------------------
是什么意思?是说按照书上的把数据库中的表字段都绑定在类里面比较的合理?是不是除了声明表中的字段还要在类里声明对数据库的 增、删、改、查 操作的成员方法?这样比较符合面向对象的设计?
谢谢!

4,012

社区成员

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

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