为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

ADO函数说明

2012-08-04 21页 doc 231KB 68阅读

用户头像

is_912250

暂无简介

举报
ADO函数说明CAdoConnection class 类成员: 构造函数: CAdoConnection() 创建Connection对象. Open 方法: BOOL CAdoConnection::Open(LPCTSTR lpszConnect, long lOptions) 连接到数据源. Params: [lpszConnect]: 连接字符串, 包含连接信息. [lOptions]: 可选. 决定该方法是以同步还是异步的方式连接数据源. 可以是如下某个常量: [常量] [说明] adConnectUns...
ADO函数说明
CAdoConnection class 类成员: 构造函数: CAdoConnection() 创建Connection对象. Open 方法: BOOL CAdoConnection::Open(LPCTSTR lpszConnect, long lOptions) 连接到数据源. Params: [lpszConnect]: 连接字符串, 包含连接信息. [lOptions]: 可选. 决定该方法是以同步还是异步的方式连接数据源. 可以是如下某个常量: [常量] [说明] adConnectUnspecified (默认)同步方式打开连接. adAsyncConnect 异步方式打开连接. Ado用 ConnectComplete 事件来通知已经完成连接. BOOL CAdoConnection::ConnectSQLServer(CString dbsrc, CString dbname, CString user, CString pass, long lOptions) 连接到 SQL Server 数据库. BOOL CAdoConnection::ConnectAccess(CString dbpath, CString pass, long lOptions) 连接到 Access 数据库. Params: [dbpath]: Access MDB 数据库文件路径名. [pass]: 访问密码. [dbsrc]: SQL SERVER 服务器名. [dbname]: 默认的数据库名. [user]: 用户名. OpenUDLFile方法: BOOL CAdoConnection::OpenUDLFile(LPCTSTR strFileName, long lOptions) 通过打开udl文件连接数据库. Params: [strFileName]: UDL 数据库连接文件路径名. // 访问SQL Server 的例子: CAdoConnection pAdoConnection; CString strConnection = _T("Provider=SQLOLEDB.1;Persist Security Info=False;" "Integrated Security=SSPI;" "Data Source=cz\\xyy;Initial Catalog=NoteBook;"); if (pAdoConnection.Open(LPCTSTR(strConnection))) { DoSomething(); } ... 或者: if (pAdoConnection.ConnectSQLServer("cz\\xyy", "NoteBook", "sa", "007")) { DoSomething(); } //访问 ACCESS 的例子: CAdoConnection pAdoConnection; CString strConnection = _T("Provider=Microsoft.Jet.OLEDB.4.0;" "Data Source=C:\\dbTest.mdb"); pAdoDb.SetConnectionString(strConnection); if (pAdoConnection.Open(LPCTSTR(strConnection))) { DoSomething(); } ... 或者: if (pAdoConnection.ConnectAccess("C:\\dbTest.mdb", "007")) { DoSomething(); } ... Close 方法: void CAdoConnection::Close() 关闭与数据源的连接. Remarks: 使用 Close 方法可关闭 Connection 对象以便释放所有关联的系统资源. 关闭对象并非将它从内存中删除, 可以更改它的属性设置并且在此后再次打开. 在超出 Connection 对象作用域或重新连接新的数据库时会自动调用此方法. Execute 方法: _RecordsetPtr CAdoConnection::Execute(LPCTSTR lpszSQL, long lOptions) 执行指定的查询、SQL 语句、存储过程等. Remarks: 请参考 CAdoRecordSet 类的Open方法. 返回的 Recordset 对象始终为只读、仅向前的游标. 连接对象的此方法一般用来执行一些不用返回记录集的SQL语句. 不需要为了执行一条小语句而动用RecordSet对象,显得更为灵活点. 如: if (pAdoConnection.IsOpen()) { pAdoConnection.Execute("Delete From student Where number = 3"); } Cancel 方法: BOOL CAdoConnection::Cancel() Remarks: 请参考 CAdoRecordSet 类 Cancel 方法. GetLastErrorText 方法: CString CAdoConnection::GetLastErrorText() 取得最后发生的错误信息. Remarks: 任何涉及 ADO 对象的操作都可以产生一个或多个提供者错误. 产生错误时,可以将一个或多个 Error 对象置于 Connection 对象的 Errors 集合中. 其他 ADO 操作产生错误时, 将清空 Errors 集合, 并且将新的 Error对象置于 Errors 集合中.每个 Error 对象代特定的提供者错误, 而不是 ADO 错误. ADO 错误被记载在运行时的异常处理机制中.没有产生错误的 ADO 操作对 Errors 集合没有影响. 使用 Clear 方式可手工清除 Errors 集合. ErrorsPtr CAdoConnection::GetErrors() 获得错误集对象指针. ErrorPtr CAdoConnection::GetError(long index) 获得错误对象指针. IsOpen 属性: BOOL CAdoConnection::IsOpen() 连接对象是否为打开状态. ConnectTimeOut 属性: BOOL CAdoConnection::SetConnectTimeOut(long lTime) long CAdoConnection::GetConnectTimeOut() 设置或取得连接超时时间. ProviderName 属性: CString CAdoConnection::GetProviderName() 取得 Connection 对象提供者的名称. Version 属性: CString CAdoConnection::GetVersion() 取得当前使用的 ADO 的版本号 State 属性: long CAdoConnection::GetState() 取得对象的状态(同 Recordset 对象的 GetState 方法). returns: 返回下列常量之一的长整型值(连接对象一般为下面两种状态之一). [常量] [说明] adStateClosed 指示对象是关闭的. adStateOpen 指示对象是打开的. Remarks: 可以随时使用 State 属性取得指定对象的当前状态. Mode 属性: ConnectModeEnum CAdoConnection::GetMode() BOOL CAdoConnection::SetMode(ConnectModeEnum mode) 设置或取得在 Connection 对象中修改数据的可用权限. returns: 返回以下某个 ConnectModeEnum 的值. [常量] [说明] adModeUnknown 默认值. 表明权限尚未设置或无法确定. adModeRead 表明权限为只读. adModeWrite 表明权限为只写. adModeReadWrite 表明权限为读/写. adModeShareDenyRead 防止其他用户使用读权限打开连接. adModeShareDenyWrite 防止其他用户使用写权限打开连接. adModeShareExclusive 防止其他用户打开连接. adModeShareDenyNone 防止其他用户使用任何权限打开连接. Remarks: 使用 Mode 属性可设置或返回当前连接上提供者正在使用的访问权限. 只能在关闭 Connection 对象时方可设置 Mode 属性. OpenSchema 方法: _RecordsetPtr CAdoConnection::OpenSchema(SchemaEnum QueryType) 从数据源获取数据库信息. Params: [QueryType]: 所要运行的模式查询类型, 下面列出一些较常用的类型及返回的表中多条字段中主要的字段名. adSchemaAsserts CONSTRAINT_NAME adSchemaCatalogs CATALOG_NAME adSchemaCharacterSets CHARACTER_SET_NAME adSchemaCheckConstraints CONSTRAINT_NAME adSchemaCollations COLLATION_NAME adSchemaColumnDomainUsage DOMAIN_NAME COLUMN_NAME adSchemaColumnPrivileges TABLE_NAME COLUMN_NAME GRANTOR GRANTEE adSchemaColumns TABLE_NAME COLUMN_NAME adSchemaConstraintColumnUsage TABLE_NAME COLUMN_NAME adSchemaConstraintTableUsage TABLE_NAME adSchemaForeignKeys PK_TABLE_NAME FK_TABLE_CATALOG FK_TABLE_SCHEMA FK_TABLE_NAME adSchemaIndexes INDEX_NAME TYPE TABLE_NAME adSchemaKeyColumnUsage CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME adSchemaPrimaryKeys PK_TABLE_NAME adSchemaProcedureColumns PROCEDURE_NAME COLUMN_NAME adSchemaProcedureParameters PROCEDURE_NAME PARAMTER_NAME adSchemaProcedures PROCEDURE_NAME PROCEDURE_TYPE adSchemaProviderSpecific 参见说明 adSchemaProviderTypes DATA_TYPE BEST_MATCH adSchemaReferentialConstraints CONSTRAINT_NAME adSchemaSchemata SCHEMA_OWNER adSchemaSQLLanguages <无> adSchemaStatistics TABLE_NAME adSchemaTableConstraints CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE adSchemaTablePrivileges TABLE_NAME GRANTOR GRANTEE adSchemaTables TABLE_NAME TABLE_TYPE adSchemaTranslations TRANSLATION_NAME adSchemaUsagePrivileges OBJECT_NAME OBJECT_TYPE GRANTOR GRANTEE adSchemaViewColumnUsage VIEW_NAME adSchemaViewTableUsage VIEW_NAME adSchemaViews VIEW_NAME returns: 返回包含数据库信息的 Recordset 对象. Recordset 将以只读、静态游标打开. Remarks: OpenSchema方法返回与数据源有关的信息, 例如关于服务器上的表以及表中的列等信息, 上述数据仅供参考, 视具体的数据源可能会有不同. Trans 相关方法: long CAdoConnection::BeginTrans() BOOL CAdoConnection::CommitTrans() BOOL CAdoConnection::RollbackTrans() BeginTrans - 开始新事务. CommitTrans - 保存任何更改并结束当前事务.它也可能启动新事务. RollbackTrans - 取消当前事务中所作的任何更改并结束事务. 它也可能启动新事务. 一旦调用了 BeginTrans 方法, 在调用 CommitTrans 或 RollbackTrans 结束事务之前, 数据库将不再立即提交所作的任何更改. 对于支持嵌套事务的数据库来说, 在已打开的事务中调用 BeginTrans 方法将开始新的嵌套事务. 返回值将指示嵌套层次: 返回值为 1 表示已打开顶层事务(即事务不被另一个事务所嵌套), 返回值为 2 表示已打开第二层事务(嵌套在顶层事务中的事务), 依次类推. 调用 CommitTrans 或 RollbackTrans 只影响最新打开的事务;在处理任何更高层事务之前必须关闭或回卷当前事务. 调用 CommitTrans 方法将保存连接上打开的事务中所做的更改并结束事务. 调用 RollbackTrans方法还原打开事务中所做的更改并结束事务. 在未打开事务时调用其中任何一种方法都将引发错误. // 数值类型转换 ----------------------------------- COleDateTime vartodate(const _variant_t& var); COleCurrency vartocy(const _variant_t& var); bool vartobool(const _variant_t& var); BYTE vartoby(const _variant_t& var); short vartoi(const _variant_t& var); long vartol(const _variant_t& var); double vartof(const _variant_t& var); CString vartostr(const _variant_t& var); 把变体型变量转换成其他类型变量. CAdoRecordSet class: CAdoRecordSet: CAdoRecordSet::CAdoRecordSet() CAdoRecordSet::CAdoRecordSet(CAdoConnection *pConnection) void CAdoRecordSet::SetAdoConnection(CAdoConnection *pConnection) 创建Connection对象. Params: [pConnection]: 连接对象指针. Open 方法: BOOL CAdoRecordSet::Open(LPCTSTR strSQL, long lOption, CursorTypeEnum CursorType, LockTypeEnum LockType) Params: [strSQL]: SQL语句, 表名, 存储过程或持久 Recordset 文件名. [lOption]: 可选. 长整型值, 用于指示 strSQL 参数的类型. 可为下列常量之一. [常量] [说明] adCmdText 指示strSQL为命令文本, 即普通的SQL语句. adCmdTable 指示ADO生成SQL查询返回以 strSQL 命名的表中的所有行. adCmdTableDirect 指示所作的更改在strSQL中命名的表中返回所有行. adCmdStoredProc 指示strSQL为存储过程. adCmdUnknown 指示strSQL参数中的命令类型为未知. adCmdFile 指示应从在strSQL中命名的文件中恢复保留(保存的)Recordset. adAsyncExecute 指示应异步执行strSQL. adAsyncFetch 指示在提取 Initial Fetch Size 属性中指定的初始数量后, 应该异步提取所有剩余的行. 如果所需的行尚未提取, 主要的线程将被堵塞直到行重新可用. adAsyncFetchNonBlocking 指示主要线程在提取期间从未堵塞. 如果所请求的行尚未提取, 当前行自动移到文件末尾. [CursorType]: 可选. CursorTypeEnum 值, 确定打开 Recordset 时应该使用的游标类型. 可为下列常量之一. [常量] [说明] adOpenForwardOnly 打开仅向前类型游标. adOpenKeyset 打开键集类型游标. adOpenDynamic 打开动态类型游标. adOpenStatic 打开静态类型游标. [ LockType]: 可选, 确定打开 Recordset 时应该使用的锁定类型(并发)的 LockTypeEnum 值, 可为下列常量之一. [常量] [说明] adLockReadOnly 只读 - 不能改变数据. adLockPessimistic 保守式锁定 - 通常通过在编辑时立即锁定数据源的记录. adLockOptimistic 开放式锁定 - 只在调用 Update 方法时才锁定记录. adLockBatchOptimistic 开放式批更新 - 用于批更新模式(与立即更新模式相对). Cancel 方法: BOOL CAdoRecordSet::Cancel() 取消执行挂起的异步 Execute 或 Open 方法的调用. Remarks: 使用 Cancel 方法终止执行异步 Execute 或 Open 方法调用(即通过 adAsyncConnect、adAsyncExecute 或 adAsyncFetch 参数调用的方法). 如果在试图终止的方法中没有使用 adAsyncExecute, 则 Cancel 将返回运行时错误. Close 方法: void CAdoRecordSet::Close() 关闭打开的对象及任何相关对象. Remarks: 使用 Close 方法可关闭 Recordset 对象以便释放所有关联的系统资源. 关闭对象并非将它从内存中删除, 可以更改它的属性设置并且在此后再次打开. 要将对象从内存中完全删除, 可将对象变量设置为 NULL. 如果正在立即更新模式下进行编辑, 调用Close方法将产生错误,应首先调用 Updat e或 CancelUpdat 方法. 如果在批更新期间关闭 Recordset 对象, 则自上次 UpdateBatch 调用以来所做的修改将全部丢失. 如果使用 Clone 方法创建已打开的 Recordset 对象的副本, 关闭原始Recordset或其副本将不影响任何其他副本. 例1: if (m_adoConnection.OpenUDLFile("C:\\mm.udl")) { m_adoRecordSet.SetAdoConnection(&m_adoConnection); m_adoRecordSet.SetCursorLocation(adUseClient); m_adoRecordSet.Open("ado", adCmdTable); // 开始事务 ------------------------ m_adoConnection.BeginTrans(); bool bSex = false; if (m_strSex == "男") bSex = true; m_adoRecordSet.AddNew(); if (!m_adoRecordSet.PutCollect("age", m_nAge) || !m_adoRecordSet.PutCollect("length", m_fLength) || !m_adoRecordSet.PutCollect("name", m_strName) || !m_adoRecordSet.PutCollect("tel", m_strTel) || !m_adoRecordSet.PutCollect("money", m_cyMoney) || !m_adoRecordSet.PutCollect("date", m_dtDate) || !m_adoRecordSet.PutCollect("sex", bSex)) { m_adoRecordSet.CancelUpdate(); m_adoConnection.RollbackTrans(); } else { m_adoRecordSet.Update; m_adoConnection.CommitTrans(); } .... if (m_adoRecordSet.GetEditMode() != adEditNone) { m_adoRecordSet.CancelUpdate(); } m_adoRecordSet.Close(); } else { MessageBox("数据库连接失败!"); } AddNew 方法: BOOL CAdoRecordSet::AddNew() Remarks: 开始添加新的纪录. Update 方法: BOOL CAdoRecordSet::Update() Remarks: 在调用 AddNew 等方法后, 调用此方法完成更新或修改. UpdateBatch 方法: BOOL CAdoRecordSet::UpdateBatch(AffectEnum AffectRecords) Remarks: 将所有挂起的批更新写入磁盘. Params: AffectRecords 可选, AffectEnum 值. 决定 UpdateBatch 方法所影响的记录数目.可以为如下常量之一. [常量] [说明] adAffectCurrent 只写入当前记录的挂起更改. adAffectGroup 写入满足当前 Filter 属性设置的记录所发生的挂起更改. 必须将 Filter 属性设置为某个有效的预定义常量才能使用该选项. adAffectAll(默认值) . 写入 Recordset 对象中所有记录的挂起更改, 包括由于当前 Filter 属性设置而隐藏的任何记录. adAffectAllChapters 写入所有子集的挂起更改. Remarks: 按批更新模式修改 Recordset 对象时, 使用 UpdateBatch 方法可将 Recordset 对象中的所有更改传递到基本数据库. 如果 Recordset 对象支持批更新, 那么可以将一个或多个记录的多重更改缓存在本地, 然后再调用 UpdateBatch 方法. 如果在调用 UpdateBatch 方法时正在编辑当前记录或者添加新的记录, 那么在将批更新传送到提供者之前, ADO 将自动 调用 Update 方法保存对当前记录的所有挂起更改. 只能对键集或静态游标使用批更新. CancelUpdate 方法: BOOL CAdoRecordSet::CancelUpdate() Name: 取消在调用 Update 方法前对当前记录或新记录所作的任何更改. Remarks: 使用 CancelUpdate 方法可取消对当前记录所作的任何更改或放弃新添加的记录. 在调用 Update 方法后将无法撤消对当前记录或新记录所做的更改, 除非更改是可以用 RollbackTrans 方法回卷的事务的一部分, 或者是可以用 CancelBatch 方法取消的批更新的一部分. 如果在调用 CancelUpdate 方法时添加新记录, 则调用 AddNew 之前的当前记录将再次成为当前记录. 如果尚未更改当前记录或添加新记录, 调用 CancelUpdate 方法将产生错误. CancelBatch 方法: BOOL CAdoRecordSet::CancelBatch(AffectEnum AffectRecords) Name: 取消挂起的批更新. Params: AffectRecords 可选的 AffectEnum 值, 决定CancelBatch 方法所影响记录的数目, 可为下列常量之一: [常量] [说明] AdAffectCurrent 仅取消当前记录的挂起更新. AdAffectGroup 对满足当前 Filter 属性设置的记录取消挂起更新.使用该选项时,必须将 Filter 性设置为合法的预定义常量之一. AdAffectAll 默认值 取消 Recordset 对象中所有记录的挂起更新,包括由当前 Filter 属性设置所隐藏的任何记录. Delete 方法: BOOL CAdoRecordSet::Delete(AffectEnum AffectRecords) Params: AffectRecords: AffectEnum 值, 确定 Delete 方法所影响的记录数目, 该值可以是下列常量之一. [常量] [说明 ] AdAffectCurrent 默认 仅删除当前记录. AdAffectGroup 删除满足当前 Filter 属性设置的记录. 要使用该选项, 必须将 Filter 属性设置为有效的预定义常量之一. adAffectAll 删除所有记录. adAffectAllChapters 删除所有子集记录. PutCollect/GetCollect 方法: BOOL PutCollect(long index, const _variant_t &value); BOOL PutCollect(long index, const CString &value); BOOL PutCollect(long index, const double &value); BOOL PutCollect(long index, const float &value); BOOL PutCollect(long index, const long &value); BOOL PutCollect(long index, const DWORD &value); BOOL PutCollect(long index, const int &value); BOOL PutCollect(long index, const short &value); BOOL PutCollect(long index, const BYTE &value); BOOL PutCollect(long index, const bool &value); BOOL PutCollect(long index, const COleDateTime &value); BOOL PutCollect(long index, const COleCurrency &value); BOOL PutCollect(LPCTSTR strFieldName, const _variant_t &value); BOOL PutCollect(LPCTSTR strFieldName, const CString &value); BOOL PutCollect(LPCTSTR strFieldName, const double &value); BOOL PutCollect(LPCTSTR strFieldName, const float &value); BOOL PutCollect(LPCTSTR strFieldName, const long &value); BOOL PutCollect(LPCTSTR strFieldName, const DWORD &value); BOOL PutCollect(LPCTSTR strFieldName, const int &value); BOOL PutCollect(LPCTSTR strFieldName, const short &value); BOOL PutCollect(LPCTSTR strFieldName, const BYTE &value); BOOL PutCollect(LPCTSTR strFieldName, const bool &value); BOOL PutCollect(LPCTSTR strFieldName, const COleDateTime &value); BOOL PutCollect(LPCTSTR strFieldName, const COleCurrency &value); BOOL GetCollect(long index, CString &value); BOOL GetCollect(long index, double &value); BOOL GetCollect(long index, float &value); BOOL GetCollect(long index, long &value); BOOL GetCollect(long index, DWORD &value); BOOL GetCollect(long index, int &value); BOOL GetCollect(long index, short &value); BOOL GetCollect(long index, BYTE &value); BOOL GetCollect(long index, bool &value); BOOL GetCollect(long index, COleDateTime &value); BOOL GetCollect(long index, COleCurrency &value); BOOL GetCollect(LPCSTR strFieldName, CString &strValue); BOOL GetCollect(LPCSTR strFieldName, double &value); BOOL GetCollect(LPCSTR strFieldName, float &value); BOOL GetCollect(LPCSTR strFieldName, long &value); BOOL GetCollect(LPCSTR strFieldName, DWORD &value); BOOL GetCollect(LPCSTR strFieldName, int &value); BOOL GetCollect(LPCSTR strFieldName, short &value); BOOL GetCollect(LPCSTR strFieldName, BYTE &value); BOOL GetCollect(LPCSTR strFieldName, bool &value); BOOL GetCollect(LPCSTR strFieldName, COleDateTime &value); BOOL GetCollect(LPCSTR strFieldName, COleCurrency &value); 在读取字段的值,本程序做了一些自动的转换,如: 如果字段的值是以数字组成的字符串,你可以用整型或双精度的值,直接读取. Requery 方法: BOOL CAdoRecordSet::Requery(long Options) Name: 通过重新执行对象所基于的查询, 更新 Recordset 对象中的数据. Params: Options 可选. 指示影响该操作选项的位屏蔽. 如果该参数设置为 adAsyncExecute, 则该操作将异步执行并在它结束时产生 RecordsetChangeComplete 事件 Remarks: 通过重新发出原始命令并再次检索数据, 可使用 Requery 方法刷新来自数据源的 Recordset 对象的全部内容. 调用该方法等于相继调用 Close 和 Open 方法. 如果正在编辑当前记录或者添加新记录将产生错误. Resync 方法: BOOL CAdoRecordSet::Resync(AffectEnum AffectRecords, ResyncEnum ResyncValues) Name: 从基本数据库刷新当前 Recordset 对象中的数据. Params: AffectRecords: 可选, AffectEnum 值, 决定 Resync 方法所影 响的记录数目, 可以为下列常量之一. [常量] [说明] adAffectCurrent 只刷新当前记录. adAffectGroup 刷新满足当前 Filter 属性设置的记录.只有将 Filter 属性设置为有效预定义常量之一才能使用该选项. adAffectAll 默认值 刷新 Recordset 对象中的所有记录, 包括由于当前 Filter 属性设置而隐藏的记录. adAffectAllChapters 刷新所有子集记录. ResyncValues: 可选, ResyncEnum 值. 指定是否覆盖基本值. 可为下列常量之一. [常量] [说明] adResyncAllValues 默认值 覆盖数据, 取消挂起的更新. adResyncUnderlyingValues 不覆盖数据, 不取消挂起的更新. Remarks: 使用 Resync 方法将当前 Recordset 中的记录与基本的数据库重新同步. 这在使用静态或仅向前的游标但希望看到基本数据库中的改动时十分有用. 如果将 CursorLocation 属性设置为 adUseClient, 则 Resync 仅对非只读的 Recordset 对象可用. 与 Requery 方法不同, Resync 方法不重新执行 Recordset 对象的基本的命令, 基本的数据库中的新记录将不可见. Save/Load 方法: BOOL CAdoRecordSet::Save(LPCTSTR strFileName, PersistFormatEnum PersistFormat) BOOL CAdoRecordSet::Load(LPCTSTR strFileName) Name: 将 Recordset 保存在持久性文件中. Params: [strFileName]: 可选. 文件的完整路径名, 用于保存 Recordset. [PersistFormat]: 可选. PersistFormatEnum 值, 指定保存 Recordset 所使用的格式. 可以是如下的某个常量: [常量] [说明] adPersistADTG 使用专用的“Advanced Data Tablegram”格式保存. adPersistXML 默认 使用 XML 格式保存. Remarks: 只能对打开的 Recordset 调用 Save 方法. 随后使用 Open 方法可以从文件中恢复 Recordset. 如果 Filter 属性影响 Recordset, 将只保存经过筛选的行. 在第一次保存 Recordset 时指定 FileName. 如果随后调用 Save 时, 应忽略 FileName, 否则将产生运行时错误. 如果随后使用新的 FileName 调用 Save, 那么 Recordset 将保存到新的文件中, 但新文件和原始文件都是打开的. 记录集导航方法: BOOL CAdoRecordSet::MoveFirst() BOOL CAdoRecordSet::MoveLast () BOOL CAdoRecordSet::MoveNext () BOOL CAdoRecordSet::MovePrevious () Remarks: 使用 MoveFirst 方法将当前记录位置移动到 Recordse 中的第一个记录. 使用 MoveLast 方法将当前记录位置移动到 Recordset 中的最后一个记录. Recordset 对象必须支持书签或向后光标移动; 否则调用该方法将产生错误. 使用 MoveNext 方法将当前记录向前移动一个记录(向 Recordset 的底部). 如果最后一个记录是当前记录并且调用 MoveNext 方法, 则 ADO 将当前记录设置到 Recordset (EOF为 True)的尾记录之后. 当 EOF 属性已经为 True 时试图向前移动将产生错误. 使用 MovePrevious 方法将当前记录位置向后移动一个记录(向记录集的顶部). Recordset 对象必须支持书签或向后游标移动; 否则方法调用将产生错误. 如果首记录是当前记录并且调用 MovePrevious 方法, 则 ADO 将当前记录设置在 Recordset (BOF为True)的首记录之前. 而BOF属性为 True 时向后移动将产生错误. 如果 Recordse 对象不支持书签或向后游标移动, 则 MovePrevious 方法将产生错误. 如果记录集是仅向前的, 但是用户希望支持向前和向后滚动, 则可以使用 CacheSize 属性创建记录缓存, 通过 Move 方法支持向后游标移动. 由于缓存记录是加载到内存中的, 所以应避免不必要地缓存太多记录. 可以调用仅向前 Recordset 对象的 MoveFirst 方法; 这样做可使提供者重新执行生成 Recordset 对象的命令. Move: BOOL CAdoRecordSet::Move(long lRecords, long Start) Name: 移动 Recordset 对象中当前记录的位置. Params: [lRecords] 带符号长整型表达式, 指定当前记录位置移动的记录数. [Start] 可选, 变体型书签. 也可以使用下列 BookmarkEnum 值: [常量] [说明] adBookmarkCurrent 默认 从当前记录开始. adBookmarkFirst 从首记录开始. adBookmarkLast 从尾记录开始. State 属性: long CAdoRecordSet::GetState() BOOL CAdoRecordSet::IsOpen() Name: 取得记录集对象的状态(是打开状态还是关闭状态). 对异步方式执行的 Recordset 对象, 则说明当前的对象状态是连接、执行还是获取状态. returns: 返回下列常量之一的长整型值. [常量] [说明] adStateClosed 指示对象是关闭的. adStateOpen 指示对象是打开的. adStateConnecting 指示 Recordset 对象正在连接. adStateExecuting 指示 Recordset 对象正在执行命令. adStateFetching 指示 Recordset 对象的行正在被读取. Remarks: 可以随时使用 State 属性确定指定对象的当前状态. 该属性是只读的. Recordset 对象的 State 属性可以是组合值. 例如: 如果正在执行语句, 该属性将是 adStateOpen 和 adStateExecuting 的组合值. long CAdoRecordSet::GetStatus() Name: 指示有关批更新或其他大量操作的当前记录的状态. returns: 返回下列一个或多个 RecordStatusEnum 值之和. [常量] [说明] adRecOK 成功地更新记录. adRecNew 记录是新建的. adRecModified 记录被修改. adRecDeleted 记录被删除. adRecUnmodified 记录没有修改. adRecInvalid 由于书签无效, 记录没有保存. adRecMultipleChanges 由于影响多个记录, 因此记录未被保存. adRecPendingChanges 由于记录引用挂起的插入, 因此未被保存. adRecCanceled 由于操作被取消, 未保存记录. adRecCantRelease 由于现有记录锁定, 没有保存新记录. adRecConcurrencyViolation 由于开放式并发在使用中, 记录未被保存. adRecIntegrityViolation 由于用户违反完整性约束, 记录未被保存. adRecMaxChangesExceeded 由于存在过多挂起更改, 记录未被保存. adRecObjectOpen 由于与打开的储存对象冲突, 记录未被保存. adRecOutOfMemory 由于计算机内存不足, 记录未被保存. adRecPermissionDenied 由于用户没有足够的权限, 记录未被保存. adRecSchemaViolation 由于记录违反基本数据库的结构, 因此未被保存. adRecDBDeleted 记录已经从数据源中删除. Remarks: 使用 Status 属性查看在批更新中被修改的记录有哪些更改被挂起. 也可使用 Status 属性查看大量操作时失败记录的状态. 例如, 调用 Recordset 对象的 Resync、UpdateBatch 或 CancelBatch 方法, 或者设置 Recordset 对象的 Filter 属性为书签数组. 使用该属性, 可检查指定记录为何失败并将问题解决. long CAdoRecordSet::GetRecordCount() Name: 获取当前记录集中记录数目 long CAdoRecordSet::GetFieldsCount() Name: 获取当前记录集中字段数目 BOOL CAdoRecordSet::IsBOF() Name: 指针是否在在记录集头 BOOL CAdoRecordSet::IsEOF() Name: 指针是否在在记录集尾 字段属性: FieldsPtr CAdoRecordSet::GetFields() Remarks: Recordset 对象包括 Field 对象组成的 Fields 集合. 每个Field 对象对应 Recordset 集中的一列. GetField FieldPtr CAdoRecordSet::GetField(long lIndex) FieldPtr CAdoRecordSet::GetField(LPCTSTR lpszFieldName) Name: 取得指定列的字段对象的指针. FieldName CString CAdoRecordSet::GetFieldName(long lIndex) Remarks: 取得指定列字段的字段名. FieldAttributes: long CAdoRecordSet::GetFieldAttributes(long lIndex) long CAdoRecordSet::GetFieldAttributes(LPCTSTR lpszFieldName) name: 取得 Field 对象一项或多项属性. returns: 对于 Field 对象, Attributes 属性为只读, 其值可能为以下任意一个或多个 FieldAttributeEnum 值的和. [常量] [说明] adFldMayDefer 指示字段被延迟, 即不从拥有整个记录的数据源检索字段值, 仅在显式访问这些字段时才进行检索. adFldUpdatable 指示可以写入该字段. adFldUnknownUpdatable 指示提供者无法确定是否可以写入该字段. adFldFixed 指示该字段包含定长数据. adFldIsNullable 指示该字段接受 Null 值. adFldMayBeNull 指示可以从该字段读取 Null 值. adFldLong 指示该字段为长二进制字段. 并指示可以使用 AppendChunk 和 GetChunk 方法. adFldRowID 指示字段包含持久的行标识符, 该标识符无法被写入,并且除了对行进行标识(如记录号、唯一标识符等)外不存在有意义的值. adFldRowVersion 指示该字段包含用来跟踪更新的某种时间或日期标记. adFldCacheDeferred 指示提供者缓存了字段值, 并已完成随后对缓存的读取. DefineSize: long CAdoRecordSet::GetFieldDefineSize(long lIndex) long CAdoRecordSet::GetFieldDefineSize(LPCTSTR lpszFieldName) Name: 指示 Field 对象所定义的长度. returns: 返回某个字段定义的长度(按字节数)的长整型值. Remarks: 使用 DefinedSize 属性可确定 Field 对象的数据容量. ActualSize: long CAdoRecordSet::GetFieldActualSize(long lIndex) long CAdoRecordSet::GetFieldAc
/
本文档为【ADO函数说明】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索