ADO简介

Ado编程详解

 

 

 

主要的三大对象(智能指针)

_ ConnectionPtr,  _CommandPtr  , _RecordSetPtr

 

其实ConnectionPtr CommandPtr  RecordSetPtr 都可以执行Sql操作数据库

 

1._RecordSetPtr  详解

创建实例:

_RecordSetPtr  recordPtr;

recordPtr.CreateInstance(__uuidof(RecordSet));

 

打开记录集

Open函数

函数原型:

Open (

 const _variant_t & Source, //源(Sql语句,存储过程)

const _variant_t & ActiveConnection, //活动的连接

enum CursorTypeEnum CursorType,//  见下面

 enum LockTypeEnum LockType, //见下面

long Options //见下面

)

 

参数三类型:

CursorTypeEnum的详解

enum CursorTypeEnum
{
adOpenUnspecified = -1,///不作特别指定
adOpenForwardOnly = 0,///前滚静态光标。这种光标只能向前浏览记录集,比如用MoveNext向前滚动,这

种方式可以提高浏览速度。但诸如BookMark,RecordCount,AbsolutePosition,AbsolutePage都不能使用
adOpenKeyset = 1,///采用这种光标的记录集看不到其它用户的新增、删除操作,但对于更新原有记录的

操作对你是可见的。
adOpenDynamic = 2,///动态光标。所有数据库的操作都会立即在各用户记录集上反应出来。
adOpenStatic = 3///静态光标。它为你的记录集产生一个静态备份,但其它用户的新增、删除、更新操

作对你的记录集来说是不可见的。
};

 

 

参数四:

LockType锁定类型,它可以是以下值之一,请看如下枚举结构:
enum LockTypeEnum
{
adLockUnspecified = -1,///未指定
adLockReadOnly = 1,///只读记录集
adLockPessimistic = 2,悲观锁定方式。数据在更新时锁定其它所有动作,这是最安全的锁定机制
adLockOptimistic = 3,乐观锁定方式。只有在你调用Update方法时才锁定记录。在此之前仍然可以做数

据的更新、插入、删除等动作
adLockBatchOptimistic = 4,乐观分批更新。编辑时记录不会锁定,更改、插入及删除是在批处理模式

下完成。
};

参数5:

.option可以取以下值
adCmdText:
表明CommandText是文本命令
adCmdTable:表明CommandText是一个表名
adCmdProc:表明CommandText是一个存储过程
adCmdUnknown:未知

While(!_recordPtr->AdoEof)

{

    _recordPtr->MoveNext();

}

 

获得列

m_pRecordset->GetFields()->GetItem((long)0).Value (通过列索引)

m_pRecordset->GetCollect("username"); (直接通过列名)

 

 

添加

m_pRecordSet->AddNew();

m_pRecordset->PutCollect("ID",_variant_t((long)(i+10)));
m_pRecordset->PutCollect("username",_variant_t("haiyan"));
m_pRecordset->PutCollect("old",_variant_t((long)71));
m_pRecordset->PutCollect("birthday",_variant_t("1930-3-15"));

m_pRecordSet->Update();

 

 

修改

你可能感兴趣的:(sql,编程,数据库,活动,存储)