Chinaunix首页 | 论坛 | 博客
  • 博客访问: 577929
  • 博文数量: 752
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(752)

文章存档

2011年(1)

2008年(751)

我的朋友

分类:

2008-10-13 16:52:23

JerryZ:成真,你真的好帅哦!
(发表于2003-5-12 23:02:00)

QQQQXSH:你好猛啊
i fowwow you
(发表于2003-5-13)

QQQQXSH:不好意思
是 follow
(发表于2003-5-13 0:01:00)

liu_sir:真的很不错,封装的非常全面,很实用,有一点:最好把CoInitialize(NULL);这些函数放在类的构造与系构函数中,这样使用者如果忘记了初始化也不会出错.
(发表于2003-5-13 8:48:00)

venture:个人觉得, 封装的作用是为了更好的使用. 并不是ADO有什么函数, 就用什么函数名包含一下ADO的实现, 再加一点东东. 主要作用是要在程序中用更少的代码, 提供高安全性.  以及错误的处理. 就好像Parameter对象. 完全可以不实现. 直接放在Command对象中. 用户只需
if(m_piCmd == NULL)
{
m_piCmd->CreateInstance(__uuidof(Command)));
m_piCmd->CommandText = ...;
m_piCmd->ActiveConnection = ...;
m_piCmd->CommandType = adCmdStoreProc;

}
m_piCmd->Parameters->Append(m_piCmd->CreateParameter(...));
这样在使用角度来说, 用户只需创建一个CAdoCommand对象. 只要CreateParameter(...)就行了. 少写了很多代码.
(发表于2003-5-14 8:08:00)

czanyou:我觉得各有所爱,也各有所求,如果你对某个对象不需要,可以不加工程中来嘛,反正各个对象之间又不是关联很紧密的,甚至连command对象都不是必须的。我加了这个对象无非是想让对变体型变量的转换更方便点。
当然你的见解非常好,正是也想到这个问题在record对象中就把字段对象的方法包括在里面,而没有写另外的类,看来确实也得把parameter加到comand对象里会更好一点。
我觉得ado组件的方法非常精简,它的方法大都非常有用,我封装大部分方法是想统一起见,绝没有要眩耀什么技术意思。
当然谢谢您的见解。

(发表于2003-5-14 12:03:00)

venture:呵呵, 我也只是发表一下自己见解. 你的封装还是很不错的呀.  :)
(发表于2003-5-15 8:38:00)

czanyou:呵呵,:)
(发表于2003-5-15 9:45:00)

xgw:good
(发表于2003-5-16 10:05:00)

r3000:很不错,鼓励!掌声!!!
再打击一下,对ADO封装实际上意义不大,一来ADO实际上已经是OLE DB的COM封装了,二来上也有多个封装,功能上也很完全。
在VC下开发数据库,有价值的是对OLE DB进行封装,因为
ATL对OLE DB的封装很少,很多东西没有做,而且做了的也有bug,对OLE DB封装一下,可以绕开不必要的ADO(这个
东东是微软给ASP,VB等环境用的,根本不是给VC开发的)
msdn里也在强调,数据库新项目的开发应该以OLE DB为主。
OLE DB SDK是很不错的,ADO的所有东西,都来自于它,
直接使用OLE DB效率肯定比ADO高。功能也比ADO多。




(发表于2003-5-19 12:42:00)

czanyou:收到,一定努力
(发表于2003-5-20 7:44:00)

AaronChan:打搅大家下!
ODBC编程中CDBVariant这个类型怎么用?如用ADO该怎么转换?
有这样一段ODBC程序:
(myhis是一CRecordset类,绑定一SQL数据库中的一个表)
    CString df;
    CDBVariant myvar;
    myhisset->GetFieldValue(13,myval,SQL_C_CHAR);
    df=myvar.m_pstring->GetBuffer(10);
    ……………………
如用ADO来实现这样行不?
    CString tempdf;
    tempdf=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("[Vert]");
    df=tempdf.GetBuffer(10);

(发表于2003-5-22 10:58:00)

taogx:我按照文档中的方法不能榜定到DataGrid上
(发表于2003-5-27 17:58:00)

dreamge:我用Ado访问数据库时,插入一条记录,用法如下:
     char Sql[256];
     int Num;
     sprintf(Sql,"INSERT ENTITY_RELATION(SRCBID, SRCID, OBJBID, OBJID) VALUES('%ld', '%ld', '%ld', '%ld')", nSrcBid, nSrcId, nObjBid, nObjId);
     _variant_t RecordsAffected(Sql);
     m_pRs->PutRefActiveConnection(m_pConn);
     m_pRs->Open(RecordsAffected, vtMissing, adOpenStatic, adLockReadOnly, adCmdText);
     Num=m_pRs->GetRecordCount();
     最后一句话死机了?!但是实际上是插入记录已经成功了。是怎么回事?应该如何来判断是否插入记录成功呢?
 
     我用的是Ado2.0,m_pRs和m_pConn的初始化等应该都正常。
(发表于2003-12-5 14:45:00)

lhongliangi:希望快点做出ATL对OLE DB的封装
(发表于2004-12-28 16:23:00)

sm_tang:使用该类时碰到一个问题感觉非常郁闷,希望帮助解决一下:
对sql server 2000中varbinary类型的字段如何读写?BLOB读写方法好像对其无效。
急,拜托!谢谢。
(发表于2005-6-18 17:47:00)

sm_tang:sm_tang:使用该类时碰到一个问题感觉非常郁闷,希望帮助解决一下:
对sql server 2000中varbinary类型的字段如何读写?BLOB读写方法好像对其无效。
急,拜托!谢谢。
sm_tang@163.com
(发表于2005-6-18 17:48:00)

jinge0304:我用command对象的execute方法返回一个_RecordsetPtr的引用,我把它赋给谁?
recordset对象的m_pRecordset变量是一个protected不可访问,
作者大大给与点帮助吧
(发表于2006-9-27 19:25:00)

rongbing77:数据库中有两个表怎么连接呢??写上两个就不能运行呢
(发表于2006-11-22 17:42:00)

..........................................................................
--------------------next---------------------

阅读(254) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~