A set of ADO classes - version 2.20 - CodeProject
为了方便大家下载源代码 ,我的资源中也放了一份拷贝。
英语挺烂的,硬着头皮算是翻译下来了,第一次做网页排版,有什么错误请大家回帖指出来,我好方便修改。
概述
- CADODatabase类
- CADORecordset类
- CADORecordset
- Open
- Execute
- GetQuery
- SetQuery
- RecordBinding
- GetRecordCount
- IsOpen
- Close
- GetFieldCount
- GetFieldValue
- IsFieldNull
- IsFieldEmpty
- IsEof
- IsBof
- Move
- AbsolutePage
- GetPageCount
- PageSize
- AbsolutePosition
- GetFieldInfo
- GetChunk
- AppendChunk
- GetString
- GetLastError
- GetLastErrorString
- AddNew
- Edit
- Delete
- Update
- CancelUpdate
- SetFieldValue
- Find
- FindFirst
- FindNext
- GetBookmark
- SetBookmark
- SetFilter
- SetSort
- GetRecordset
- GetActiveConnection
- Clone
- SaveAsXML
- OpenXML
- OpenSchema
- Requery
- CADOParameter类
- CADOCommand类
- CJectEngine类
- CADOException类
- COLEDBDataLink
- COLEDBException
- 常见问题
概述
我创建这些类使得我们更容易使用ADO来做我们的工作。比如我创建了CADODatabse和CADORecordset类
CADODatabse类
CADODatabse类封装了一套_ConnectionPtr智能指针相关的函数
CADODatabase::CADODatabase
创建一个CADODatabase对象
CADODatabase::Open
Open函数打开一个数据库连接
参数
LPCTSTR lpstrConnection 连接字符串
查看示例
注:该类有个函数SetConnectionString,您可以通过这个函数插入连接字符串。在这种情况下您可以执行如下操作:
CADODatabase::Execute
Excute函数在一个打开的数据库连接中执行一个SQL语句
参数
LPCTSTR lpstrExec - 一个包含需要执行的SQL语句字符串指针
返回值
假如执行成功,这个函数返回TRUE
CADODatabase::GetRecordsAffected
GetRecordsAffected返回上一次SQL命令执行后影响的记录个数
CADODatabase::GetActiveConnection
GetActiveConnection返回活动连接(当前的连接)
CADODatabase::GetRecordCount
GetRecordCount返回一个查询中受影响的记录数
参数
_RecorsetPtr m_Prs -要查询的记录集
CADODatabase::BeginTransaction
调用此函数来初始化一个事务。您调用BeginTransaction以后,当您提交事务后更新才使得您的数据使之生效。
CADODatabase::CommitTransaction
调用CommitTransaction函数提交事务,比如,保存一组编辑和一个或者多个数据库更新
CADODatabase::RollbackTransaction
调用RollbackTransaction函数结束当前事务和恢复在事务开始前的所有数据库状况
CADODatabase::IsOpen
IsOpen函数返回数据库连接的状态
返回值
假如连接的数据库是打开的,这个函数返回TRUE
CADODatabase::Close
Close函数关闭数据库连接
CADODatabase::SetConnectionString
使用SetConnectionString您可以插入一个连接字符串
参数
LPCTSTR lpstrConnection -一个用于打开数据库的连接字符串
见CADODatabase::Open();
CADODatabase::GetConnectionString
GetConnectionString函数返回用来连接数据库的连接字符串
CADODatabase::SetConnectionMode
SetConnectionMode函数设置连接模式
参数
cadoConnectModeEnum nMode-一个变量,它定义要使用的连接方式。它可以是下列之一:
- CADODatabase::connectModeUnknown
- CADODatabase::connectModeRead
- CADODatabase::connectModeWrite
- CADODatabase::connectModeReadWrite
- CADODatabase::connectModeShareDenyRead
- CADODatabase::connectModeShareDenyWrite
- CADODatabase::connectModeShareExclusive
- CADODatabase::connectModeShareDenyNone
CADODatabase::GetLastError
GetLastError函数返回最后一个错误代码
CADODatabase::GetLastErrorString
GetLastErrorString返回最后个错误的字符串
CADORecordset 类
CADORecordset 类封装了一套与_RecordsetPtr智能指针相关的函数
CADORecordset::CADORecordset
创建一个CADORecordset对象
参数
CADODatabase* pAdoDatabase - 一个CADODatabase对象指针
CADORecordset::Open
Open函数打开一个记录集
参数
_ConnectionPtr mpdb -一个连接指针
LPCTSTR lpstrExec - 一个字符串指针,包含一个SQL SELECT语句
int nOption - 一个整形数,它定义访问模式。这些值如下
- CADORecordset::openUnknown
- CADORecordset::openQuery
- CADORecordset::openTable
- CADORecordset::openStoredProc
返回值
假如执行成功返回TRUE
查看示例
CADORecordset::Execute
Execute函数打开一个记录集
参数
CADOCommand* pCommand - 一个CADOCommand指针
返回值
假如执行成功返回TRUE
查看示例
CADORecordset::GetQuery;
GetQuery返回包含SELECT关键字的SQL命令字符串
CADORecordset::SetQuery
参数
LPCTSTR strQuery - 一个字符串指针,包含一个SQL SELECT语句
CADORecordset::RecordBinding
参数
CADORecordBinding pAdoRecordBinding
CADORecordset::GetRecordCount
GetRecordCount 函数返回可以在记录集中访问的记录数
查看示例
CADORecordset::IsOpen
IsOpen 测试记录集是否打开
返回值
假如这个记录集没有关闭,这个函数返回TRUE
CADORecordset::Close
Close函数关闭记录集
查看示例
CADORecordset::GetFieldCount
GetRecordCount 函数返回记录集中的字段数目
CADORecordset::GetFieldValue
参数
LPCTSTR lpFieldName -一个包含有字段名称的字符串指针
int nIndex -一个在记录集的所有字段集中以零为基准,需要查看的索引
double dbValue - 一个将要储存字段值的引用变量
long lValue - 一个将要储存字段值的引用变量
unsigned long ulValue - 一个将要储存字段值的引用变量
int nValue - 一个将要储存字段值的引用变量
CString strValue- 一个将要储存字段值的引用变量
CString strDateFormat 一个时间格式字符串,类似strftime格式的字符,他们普遍是
%a - 平日名称缩写
%A - 全平日名称
%b - 月份名称
%B - 月份的全称
%c - 日期和时间是用本地时间表示
%d - 十进制表示月的天(01-31)
%H - 24时时间格式(00-23)
%I - 12时时间格式(01-12)
%j - 十进制表示年的天(001-366)
%m - 十进制表示的月(01-12)
%M - 十进制表示的分(00-59)
%p - A.M./P.M表示当前12时时间格式的时间
%S - 十进制表示的秒(00-59)
%U - 十进制表示年的周,星期日表示一周的第一天(00-53)
%w - 十进制表示的周几(0-6,星期天是0)
%W - 十进制表示年的周,星期一表示一周的第一天(00-53)
%x - 本地时间的日期
%X - 本地时间的时间
%y - 十进制的不带一世纪的年(00-99)
%Y - 十进制带一世纪的年
COleDateTime time - 一个将要储存字段值的引用变量
bool bValue- 一个将要储存字段值的引用变量
COleCurrency cyValue - 一个将要储存字段值的引用变量
CADORecordset::IsFieldNull
IsFieldNull函数测试字段数据是否为空
参数
LPCTSTR lpFieldName - 一个包含字段名称的字符串指针
int nIndex - 一个在记录集的所有字段集中以零为基准,需要查看的索引
返回值
假如字段数据为空,该函数返回TRUE
CADORecordset::IsFieldEmpty
IsFieldEmpty函数测试字段数据是否为空
参数
LPCTSTR lpFieldName - 一个包含字段名称的字符串指针
int nIndex - 一个在记录集的所有字段集中以零为基准,需要查看的索引
返回值
假如字段数据位空该函数返回TRUE
CADORecordset::IsEof
返回值
假如当前位置没有包含任何记录,该函数返回TRUE
查看示例
CADORecordset::IsBof
返回值
假如当前位置是记录的底部,该函数返回TRUE
CADORecordset::MoveFirst
CADORecordset::MoveNext
CADORecordset::MovePrevious
CADORecordset::MoveLast
这些函数使得第一个/下一个/上一个/或者最后个记录集中的记录作为当前记录
查看示例
CADORecordset::GetAbsolutePage
CADORecordset::SetAbsolutePage
表示当前记录在那个页
参数
int nPage - 页基数是1
查看示例
CADORecordset::GetPageCount
GetPageCount返回在一个记录集中页的数量
查看示例
CADORecordset::GetPageSize
CADORecordset::SetPageSize
指示每页有多少记录
参数
int nSize - 设置每页记录的个数
例子
CADORecordset::GetAbsolutePosition
CADORecordset::SetAbsolutePosition
表示当前记录在记录集中的位置
参数
int nPosition - 移动到的记录集位置
GetAbsolutePosition() 会返回记录的位置或者下面中的一个值
CADORecordset::GetFieldInfo
GetFieldInfo返回一个字段的属性
参数
LPCTSTR lpFieldName - 一个包含字段名称的字符串指针
int nIndex - 一个在记录集的所有字段集中以零为基准,需要查看的索引
CAdoFieldInfo* fldInfo - 一个返回的字段属性结构体
CADOFieldInfo类的成员变量m_nType可取如下值中的一个:
- CADORecordset::typeEmpty
- CADORecordset::typeTinyInt
- CADORecordset::typeSmallInt
- CADORecordset::typeInteger
- CADORecordset::typeBigInt
- CADORecordset::typeUnsignedTinyInt
- CADORecordset::typeUnsignedSmallInt
- CADORecordset::typeUnsignedInt
- CADORecordset::typeUnsignedBigInt
- CADORecordset::typeSingle
- CADORecordset::typeDouble
- CADORecordset::typeCurrency
- CADORecordset::typeDecimal
- CADORecordset::typeNumeric
- CADORecordset::typeBoolean
- CADORecordset::typeError
- CADORecordset::typeUserDefined
- CADORecordset::typeVariant
- CADORecordset::typeIDispatch
- CADORecordset::typeIUnknown
- CADORecordset::typeGUID
- CADORecordset::typeDate
- CADORecordset::typeDBDate
- CADORecordset::typeDBTime
- CADORecordset::typeDBTimeStamp
- CADORecordset::typeBSTR
- CADORecordset::typeChar
- CADORecordset::typeVarChar
- CADORecordset::typeLongVarChar
- CADORecordset::typeWChar
- CADORecordset::typeVarWChar
- CADORecordset::typeLongVarWChar
- CADORecordset::typeBinary
- CADORecordset::typeVarBinary
- CADORecordset::typeLongVarBinary
- CADORecordset::typeChapter
- CADORecordset::typeFileTime
- CADORecordset::typePropVariant
- CADORecordset::typeVarNumeric
- CADORecordset::typeArray
例子
返回值
假如执行成功返回TRUE
CADORecordset::GetChunk
该函数返回所有的,或者部分大文本,二进制数据字段内容
参数
LPCTSTR lpFieldName - 一个包含字段名称的字符串指针
int nIndex - 一个在记录集的所有字段集中以零为基准,需要查看的索引
CString& strValue 一个包含返回数据的字符串指针
LPVOID pData - 一个包含有返回数据的指针
返回值
假如执行成功返回TRUE
查看示例
CADORecordset::AppendChunk
该函数追加数据到一个大的文本或者二进制数据到字段中
参数
LPCTSTR lpFieldName - 一个包含字段名称的字符串指针
int nIndex - 一个在记录集的所有字段集中以零为基准,需要查看的索引
LPVOID lpData - 一个包含要添加数据到字段的指针
UINT nBytes - 一个无符号整形,指示要插入的数据大小
返回值
假如执行成功返回TRUE
例子
CADORecordset::GetString
该函数以字符串的形式返回一个记录
参数
LPCTSTR lpCols - 行分隔符
LPCTSTR lpRows - 列分隔符
LPCTSTR lpNull - NUL值的替代字符串
long numRows - 受影响的列数
CADORecordset::GetLastError
GetLastError函数返回最后一个错误代码
CADORecordset::GetLastErrorString
GetLastErrorString函数返回最后一个错误的字符串
CADORecordset::AddNew
AddNew 函数在一个打开的记录集中添加个一个记录
返回值
执行成功返回TRUE
查看示例
CADORecordset::Edit
Edit函数允许在一个打开的记录集中更改当前的记录
CADORecordset::Delete
Delete函数在一个打开的记录集中删除当前的的记录
返回值
执行成功返回TRUE
CADORecordset::Update
Update函数在当前记录中更新待更新的数据
返回值
执行成功返回TRUE
查看示例
CADORecordset::CancelUpdate
CancelUpdate函数在一个打开的记录集中取消任何待更新的数据
CADORecordset::SetFieldValue
SetFieldValue函数设置一个字段的值
参数
LPCTSTR lpFieldName - 一个包含字段名称的字符串指针
int nIndex - 一个在记录集的所有字段集中以零为基准,需要查看的索引
int nValue - 一个包含字段值的对象指针
long lValue - 一个包含字段值的对象指针
unsigned long lValue - 一个包含字段值的对象指针
double dbValue - 一个包含字段值的对象指针
CString strValue - 一个包含字段值的对象指针
COleDateTime time - 一个包含字段值的对象指针
bool bValue - 一个包含字段值的对象指针
COleCurrency cyValue - 一个包含字段值的对象指针
返回值
执行成功返回TRUE
查看示例
例子
CADORecordset::Find
Find 函数使用比较操作符从当前位置查找一个字符串在一个打开的记录集中的位置
参数
LPCTSTR lpFind - 一个表示用来在记录中查找的字符串
int nSearchDirection - 一个表示操作类型的值,可能取值是:
CADORecordset::searchForward - 向后查找
CADORecordset::searchBackward - 向后查找
返回值
执行成功返回TRUE
例子
CADORecordset::FindFirst
FindFirst函数从记录集起始位置开始查找一个字符串在一个打开的记录集中的所在位置
参数
LPCTSTR lpFind - 一个表示用来在记录中查找的字符串
返回值
执行成功返回TRUE
CADORecordset::FindNext
FindNext 使用类似FindFirst或者Find的操作,从记录集最后位置开始查找一个字符串在一个打开的记录集中的所在位置
返回值
执行成功返回TRUE
查看示例
CADORecordset::GetBookmark
GetBookmark函数获取在其他时间保存的记录位置
返回值
执行成功返回TRUE
CADORecordset::SetBookmark
SetBookmark函数保存当前记录的位置
返回值
执行成功返回TRUE
CADORecordset::SetFilter
SetFilter在一个打开的记录集中设置一个过滤器
参数
LPCTSTR strFilter - 一个由一个或者多个用AND或者OR操作关联在一起的个别从句组成的字符串
返回值
执行成功返回TRUE
例子
CADORecordset::SetSort
SetSort函数在一个CADORecordset对象中为所有的记录设置分类排序
参数
LPCTSTR lpstrCriteria - 一个包含ORDER BY从句SQL语句的字符串
返回值
执行成功返回TRUE
CADORecordset::GetRecordset
GetRecordset函数返回一个指向打开的记录集的指针
CADORecordset::GetActiveConnection
GetActiveConnection返回活动连接
CADORecordset::Clone
Clone函数从一个现有的CADORecordset对象中创建一个完全一样的CADORecordset对象
参数
CADORecordset pAdoRecordset 是一个现有的CADORecordset对象
返回值
执行成功返回TRUE
例子
CADORecordset::SaveAsXML
SaveAsXML 函数保存打开的记录集到一个XML格式的文件中。
参数
LPCTSTR strXMLFile - 一个字符串,指示将保存记录集的完整的路径和文件名
返回值
执行成功返回TRUE
CADORecordset::OpenXML
OpenXML函数打开一个XML文件格式到记录集中。
参数
LPCTSTR strXMLFile - 一个字符串,指示将要打开的完整的路径和文件名的XML文件
返回值
执行成功返回TRUE
例子
//函数声明
CADORecordset::OpenSchema
OpenSchema函数从提供者获取数据库图表信息
参数
int nSchema - 一个指示要图表查询类型的变量
LPCTSTR SchemaID = _T("") - 未被OLE DB定义用于提供者图表查询的GUID
Constant | Value | Description | Constraint Columns |
---|---|---|---|
schemaAsserts |
0 | Returns the assertions defined in the catalog that are owned by a given user. | CONSTRAINT_ CATALOG *CONSTRAINT_ SCHEMA *CONSTRAINT_NAME |
schemaCatalogs |
1 | Returns the physical attributes associated with catalogs accessible from the DBMS. | CATALOG_NAME |
schemaCharacterSets |
2 | Returns the character sets defined in the catalog that are accessible to a given user. | CHARACTER_ SET_CATALOG *CHARACTER_ SET_SCHEMA *CHARACTER_SET _NAME * |
schemaCheckConstraints |
5 | Returns the check constraints defined in the catalog that are owned by a given user. | CONSTRAINT_ CATALOG *CONSTRAINT_ SCHEMA *CONSTRAINT_NAME |
schemaCollations |
3 | Returns the character collations defined in the catalog that are accessible to a given user. |
COLLATION_ CATALOG *COLLATION_SCHEMA COLLATION_NAME |
schemaColumnPrivileges |
13 | Returns the privileges on columns of tables defined in the catalog that are available to, or granted by, a given user. |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME GRANTOR GRANTEE |
schemaColumns |
4 | Returns the columns of tables (including views) defined in the catalog that are accessible to a given user. |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME |
schemaColumnsDomainUsage |
11 | Returns the columns defined in the catalog that are dependent on a domain defined in the catalog and owned by a given user. | DOMAIN_CATALOG DOMAIN_SCHEMA DOMAIN_NAME COLUMN_NAME |
schemaConstraintColumnUsage |
6 | Returns the columns used by referential constraints, unique constraints, check constraints, and assertions, defined in the catalog and owned by a given user. | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME |
schemaConstraintTableUsage |
7 | Returns the tables that are used by referential constraints, unique constraints, check constraints, and assertions defined in the catalog and owned by a given user. | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME |
schemaCubes |
32 | Returns information about the available cubes in a schema (or the catalog, if the provider does not support schemas). | CATALOG_NAME SCHEMA_NAME CUBE_NAME |
schemaDBInfoKeywords |
30 | Returns a list of provider-specific keywords. | <None> |
schemaDBInfoLiterals |
31 | Returns a list of provider-specific literals used in text commands. | <None> |
schemaDimensions |
33 | Returns information about the dimensions in a given cube. It has one row for each dimension. | CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_NAME DIMENSION_ UNIQUE_NAME * |
schemaForeignKeys |
27 | Returns the foreign key columns defined in the catalog by a given user. | PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME FK_TABLE_CATALOG FK_TABLE_SCHEMA FK_TABLE_NAME |
schemaHierarchies |
34 | Returns information about the hierarchies available in a dimension. | CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_ UNIQUE_NAME *HIERARCHY_NAME HIERARCHY_ UNIQUE_NAME * |
schemaIndexes |
12 | Returns the indexes defined in the catalog that are owned by a given user. | TABLE_CATALOG TABLE_SCHEMA INDEX_NAME TYPE TABLE_NAME |
schemaKeyColumnUsage |
8 | Returns the columns defined in the catalog that are constrained as keys by a given user. | CONSTRAINT_ CATALOG *CONSTRAINT_ SCHEMA *CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME |
schemaLevels |
35 | Returns information about the levels available in a dimension. | CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_ UNIQUE_NAME *HIERARCHY_ UNIQUE_NAME *LEVEL_NAME LEVEL_ UNIQUE_NAME * |
schemaMeasures |
36 | Returns information about the available measures. | CATALOG_NAME SCHEMA_NAME CUBE_NAME MEASURE_NAME MEASURE_ UNIQUE_NAME * |
schemaMembers |
38 | Returns information about the available members. | CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_ UNIQUE_NAME *HIERARCHY_ UNIQUE_NAME *LEVEL_ UNIQUE_NAME *LEVEL_NUMBER MEMBER_NAME MEMBER_UNIQUE _NAME *MEMBER_CAPTION MEMBER_TYPE Tree operator (For more information, see the OLE DB for OLAP documentation.) |
schemaPrimaryKeys |
28 | Returns the primary key columns defined in the catalog by a given user. | PK_TABLE_CATALOG PK_TABLE_SCHEMA PK_TABLE_NAME |
schemaProcedureColumns |
29 | Returns information about the columns of rowsets returned by procedures. | PROCEDURE_ CATALOG *PROCEDURE_SCHEMA PROCEDURE_NAME COLUMN_NAME |
schemaProcedureParameters |
26 | Returns information about the parameters and return codes of procedures. | PROCEDURE_ CATALOG *PROCEDURE_SCHEMA PROCEDURE_NAME PARAMETER_NAME |
schemaProcedures |
16 | Returns the procedures defined in the catalog that are owned by a given user. | PROCEDURE_ CATALOG *PROCEDURE_SCHEMA PROCEDURE_NAME PROCEDURE_TYPE |
schemaProperties |
37 | Returns information about the available properties for each level of the dimension. | CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_ UNIQUE_NAME *HIERARCHY_ UNIQUE_NAME *LEVEL_ UNIQUE_NAME *MEMBER_ UNIQUE_NAME *PROPERTY_TYPE PROPERTY_NAME |
schemaProviderSpecific |
-1 | Used if the provider defines its own nonstandard schema queries. | <Provider specific> |
schemaProviderTypes |
22 | Returns the (base) data types supported by the data provider. | DATA_TYPE BEST_MATCH |
schemaReferentialConstraints |
9 | Returns the referential constraints defined in the catalog that are owned by a given user. | CONSTRAINT_ CATALOG *CONSTRAINT_ SCHEMA *CONSTRAINT_NAME |
schemaSchemata |
17 | Returns the schemas (database objects) that are owned by a given user. | CATALOG_NAME SCHEMA_NAME SCHEMA_OWNER |
schemaSQLLanguages |
18 | Returns the conformance levels, options, and dialects supported by the SQL-implementation processing data defined in the catalog. | <None> |
schemaStatistics |
19 | Returns the statistics defined in the catalog that are owned by a given user. | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME |
schemaTableConstraints |
10 | Returns the table constraints defined in the catalog that are owned by a given user. | CONSTRAINT_ CATALOG *CONSTRAINT_ SCHEMA *CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE |
schemaTablePrivileges |
14 | Returns the privileges on tables defined in the catalog that are available to, or granted by, a given user. | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME GRANTOR GRANTEE |
schemaTables |
20 | Returns the tables (including views) defined in the catalog that are accessible to a given user. | TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE |
schemaTranslations |
21 | Returns the character translations defined in the catalog that are accessible to a given user. | TRANSLATION_ CATALOG *TRANSLATION_ SCHEMA *TRANSLATION _NAME * |
schemaTrustees |
39 | Reserved for future use. | |
schemaUsagePrivileges |
15 | Returns the USAGE privileges on objects defined in the catalog that are available to, or granted by, a given user. | OBJECT_CATALOG OBJECT_SCHEMA OBJECT_NAME OBJECT_TYPE GRANTOR GRANTEE |
schemaViewColumnUsage |
24 | Returns the columns on which viewed tables, defined in the catalog and owned by a given user, are dependent. | VIEW_CATALOG VIEW_SCHEMA VIEW_NAME |
schemaViews |
23 | Returns the views defined in the catalog that are accessible to a given user. (VIEWS Rowset ) |
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME |
schemaViewTableUsage |
25 | Returns the tables on which viewed tables, defined in the catalog and owned by a given user, are dependent. | VIEW_CATALOG VIEW_SCHEMA VIEW_NAME |
返回值
执行成功返回TRUE
例子
//函数声明
CADORecordset::Requery
Requery函数重新刷新一个打开记录集
返回值
执行成功返回TRUE
示例01
CADOParameter类
CADOParameter类封装了一套_ParameterPtr智能指针相关的函数
CADOParameter::CADOParameter
创建一个CADOParameter对象
参数
int nType - 一个指定的CADOParameter对象数据类型整形变量。可以取CADORecordset::GetFieldInfo中一个指定值。假如您使用CADORecordset::typeNumeric 或者CADORecordset::typeDecimal,您必须定义精确度和刻度值
long lSize = 0 - 一个可选的长整形,指定了参数值最大的字节或者字符长度
int nDirection = paramInput - 一个可选的整型值,指定了CADOParameter对象的用途。可以取以下值之一:
CADOParameter::paramUnknown - 表明参数用途未知
CADOParameter::paramInput - 默认值,表明参数做为输入参数
CADOParameter::paramOutput - 表明参数作为输出参数
CADOParameter::paramInputOutput - 表明参数同时作为输入输出参数
CADOParameter::paramReturnValue - 表明参数作为一个返回值
CString strName = _T("") - 一个可选字符串,指定了CADOParameter实例名称
查看示例
CADOParameter::SetValue
SetValue 设置CADOParameter对象的值
参数
* int nValue - 一个包含参数值的整形
* long lValue - 一个包含参数值的长整形
* double dbValue - 一个包含参数值的双精度浮点数
* CString strValue - 一个包含参数值的字符串
* COleDateTime time - 一个包含参数值的时间
* _variant_t vtValue - 一个包含参数值的变体变量
返回值
执行成功返回TRUE
查看示例
CADOParameter::SetPrecision
SetPrecision函数设置CADOParameter对象对象的精度
CADOParameter::SetScale
SetScale 函数设置CADOParameter对象对象的刻度
CADOParameter::GetValue
GetValue函数返回CADOParameter对象对象的值
参数
* int& nValue - 一个将要储存参数值的整形引用
* long& lValue - 一个将要储存参数值的长整形引用
* double& dbValue - 一个将要储存参数值的双精度浮点数引用
* CString& strValue - 一个将要储存参数值的字符串引用
* CString strDateFormat = _T("") - 一个格式化字符串,类似strftime格式化的字符串
* COleDateTime& time - 一个将要储存参数值的时间引用
* _variant_t& vtValue - 一个将要储存参数值的变体变量引用
返回值
执行成功返回TRUE
查看示例
CADOParameter::SetName
SetName函数设置CADOParameter对象名称
参数
CString strName - 一个指定参数名字的字符串
CADOParameter::GetName
GetName函数返回CADOParameter对象名称
CADOCommand::GetType
GetType函数返回CADOParameter对象的类型
CADOParameter::GetParameter
GetParameter函数返回一个_Parameter对象指针
CADOCommand 类
CADOCommand类封装了一个套_CommandPtr智能指针相关的函数
CADOCommand::CADOCommand
创建一个CADOCommand对象
参数
CADODatabase* pAdoDatabase - 一个CADODatabase对象指针
CString strCommandText = _T("") - 一个可选的字符串,指出CADOCcommand对象的标题
int nCommandType = typeCmdStoredProc - 一个可选的整形,指出CADOCommand对象的类型。可取一下值中的一个:
CADOCommand::typeCmdText - 检测CommandText作为一个定义的命令文本或者存储过程来调用
CADOCommand::typeCmdTable - 检测CommandText作为一个表名称,使用一个内部生成的SQL查询返回所有的行
CADOCommand::typeCmdTableDirect - 检测CommandText作为一个返回全部行的表名称
CADOCommand::typeCmdStoredProc - 默认值,检测CommandText作为存储过程
CADOCommand::typeCmdUnknown - 指出CommandText内容的类型是未知的
CADOCommand::typeCmdFile - 检测CommandText作为一个不断被储存记录集的文件名。只能在Recordset.Open或者Requery使用
查看示例
CADOCommand::AddParameter
AddParameter 函数
参数
CADOParameter* pAdoParameter - 一个指向CADOParameter对象的指针
CString strName - 一个字符串,指出参数的名称
int nType - 一个整形值,指出CADOParameter对象的数据类型,可以取在CADORecordset::GetFieldInfo中指定的一个值。假如您使用CADORecordset::typeNumeric或者CADORecordset::typeDecimal,您必须定义了精度和刻度值。
int nDirection - 一个整形变量,指出CADOParameter对象的用途,可以取在CADOParameter::CADOParameter中指定的一个值
long lSize - 一个长整形,指出参数值的最大的字节或者字符长度
int nValue - 一个包含参数值的整形值
long lValue - 一个包含参数值的长整形值
double dblValue - 一个包含参数值的双精度浮点值
int nPrecision - 一个包含参数值的精度的整形值
int nScale - 一个包含参数值的比例的整形值
CString strValue - 一个包含参数值的字符串
COleDateTime time - 一个包含参数值的时间值
_variant_t vtValue - 一个包含参数值的变体变量值
返回值
执行成功返回TRUE
CADOCommand::SetText
SetText函数设置CADOCommand对象的命令文本
参数
CString strCommandText - 一个字符串,指出命令的文本
CADOCommand::GetText
GetText函数返回CADOCommand对象的命令文本
CADOCommand::SetType
SetType函数设置CADOCommand对象的类型
参数
int nCommandType - 一个整形值,指出命令的类型
CADOCommand::GetType
GetType函数返回CADOCommand对象的类型
CADOCommand::GetCommand
GetCommand函数返回一个Command指针
CADOCommand::Execute
Execute 函数执行命令的文本
返回值
执行成功返回TRUE
CADOCommand::GetRecordsAffected
GetRecordsAffected函数返回最后个命令执行后影响的记录个数
示例02
CJectEngine类
CJectEngine类封装了一套_RecordsetPtr智能指针相关的函数
CJetEngine::CompactDatabase
压缩一个Access 数据库
参数
CString strDatabaseSource - 一个源数据库连接字符串
CString strDatabaseDestination - 一个目的数据库连接字符串
注:
连接字符串必须是这样的:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/the Database Path"
返回值
执行成功返回TRUE
例子
CADOException类
CADOException类表示异常情况,该类包含的公共数据成员可以用来确定异常的原因
CADOException::CADOException
创建一个CADOException对象
检索ADO错误信息
构建一个CADOException 对象
通过异常对象,调用任何异常对象的GetErrorMesaage或者GetError 成员函数来检索关于这个错误的信息
例子
CADOException::GetErrorMessage
返回值
返回错误的描述
查看示例
CADOException::GetError
返回值
返回错误代码
CADOException::SetError
参数
long lErrorCode = 0 - 一个包含错误代码的长整形值
LPCSTR lpstrError = _T("") - 一个包含错误描述的字符串
COLEDBDataLink类
COLEDBDataLink 类是一个工具类,用来创建和编辑数据链
COLEDBDataLink::COLEDBDataLink
创建一个COLEDBDataLink 对象
COLEDBDataLink::New
参数
HWND hWnd = NULL - 父窗口句柄
返回值
返回一个字符串告之相应的连接字符串创建的连接
查看示例
COLEDBDataLink::Edit
参数
LPCSTR lpstrConnectionString
HWND hWnd - 父窗口句柄
例子
COLEDBException类
COLEDBException 类表示异常情况,该类包含的公共数据成员可以用来确定异常的原因
OLEDBException::COLEDBException
创建一个COLEDBException对象
检索ODEDB错误信息
构建一个COLEDBException 对象
通过异常对象,调用任何异常对象的GetErrorMesaage或者GetError 成员函数来接收关于这个错误的信息
例子
OLEDBException::GetErrorMessage
返回值
返回错误的描述
查看示例
OLEDBException::GetError
返回值
返回错误代码
OLEDBException::SetError
参数
long lErrorCode = 0 - 一个包含错误代码的长整形值
LPCSTR lpstrError = _T("") - 一个包含错误描述的字符串
如何把CADORecordset与微软的DataGrid控件进行绑定;
第一:您需要添加微软的DataGrid控件到您的程序中
第二:用CADORecordset::GetRecordset函数申请来给数据控件类的SetRefDataSource 函数使用
涉及到如何添加一个数据控件(微软DataGrid控件)到您的工程中,请参阅拉希德Thadha的这篇文章
我该如何重新排序记录集?
这个问题很简单,您使用_RecordsetPtr的部分函数和属性。使用CADORecordset::GetRecordset(),您会获得一个_RecordsetPtr指针,您可以使用它来设置Sort属性
注:您不必使用_RecordsetPtr::Refresh()
现在:您就使用CADORecordset::SetSort()函数。
致命错误C1010:意外的文件尾在查找编译头指令
为了解决这个常见问题,您需要使用自动使用编译头。选择工程/设置 (或者 ALT+F7键),在工程设置对话框,选择C/C++书签页,然后在组合框中选择预编译头一项,并选择自动使用编译头选项。
在SQL Server中您如何获取您的存储过程返回码
您必须使用CADOParameter 类,CADOParameter::paramReturnValue获取转存过程的返回值,它总是必定是一个整形,必须在参数列表的第一个位置。假如您不使用参数来输入或者输出,那么您只需要使用这个参数
查看示例
我尝试使用CADOCommand 类并能进入UUID 字段,但迄今为止我没有成功过。您能抽空为此写个例子吗?
您说的是uniqueidentifier 类型的字段吗?好的,这个问题如下:
首先您更新表使用SQL语句的NEWID()。这个命令将为你做一个独一无二的字符串如"{B6B83A8C-F92C-4FA7-9641-631143E6056C}"。想要插入数据到字段的类型中,您必须使用类似的字符串。最后,我们可以说:您应该使用带有GUID格式字符串参数类型。它必须是唯一的。是不是有很多条件!!!
不过,我写了一个示例,在下面的示例中,您会看到我使用了UUID作为字符串参数。您还看见转存过程的参数是uniqueidentifier类型的。
ADO与ADOX在一起
我每天收到几个邮件问我如何是使用ADO与ADOX类一起工作。答案是,现在现在从ADO2.10版本后,您可以使用两种类型类一起工作。您必须包含每个类头文件和CPP文件,然后在该项目中包含头文件
注意
证实包含头文件必须按如下顺序是很重要的,首先是ADOX类头文件,然后才是ADO类头文件。
Carlos A. Antollini.
更新
25 Apr 2001 - 1.0版本发布
20 May 2001 - 1.1版本
添加了如下函数
AbsolutePage, GetPageCount, PageSize, AbsolutePosition, GetFieldInfo, GetChunk, GetString.
29-Jun-2001 - 1.2版本
添加了如下函数
AddNew, Edit, Delete, Update, CancelUpdate, SetFieldValue, Find, FindFirst, FindNext, SetBookmark, GetBookmark.
29-Sept-2001 - 1.25版本
添加对SQL Server2000的支持
修正Robert Pittenger报告的空字段bug
10-Oct-2001 - 1.30版本
修正ugGiles Forster 和 Rainer Mangold
报告的SetFieldValue 中空字段bug
添加数据枚举类型
05-Nov-2001 - 版本1.37
CADORecodset更新能添加绑定到DataGrid的功能
添加GetLastErrorString 函数和改变GetLastError函数返回的数据类型
添加Clone和SetFilter函数(应Marcel Stoica的要求)
15-Jan-2002 - 1.40版本
添加Giles Forster写的GetChunk和AppendChunk函数
15-Feb-2002 - 1.45版本
修正J. C. Martinez Gal?n 报告的十进制字段的bug
添加XML支持
04-Apr-2002 - 2.00版本
添加CADOParameter 和 CADOCommand类
14-May-2002 - 2.01版本
在CADORecordset::GetFieldValue和CADORecordset::SetFieldValue添加COleCurrency和bool
25-July-2002 - 2.04版本
添加CADODatabase::GetRecordsAffcetd, CADOCommand::GetRecordsAffected, CADOCommand::Execute, CADOParameter::SetPrecision, CADOParamater::SetScale和修正CADOCommand::AddParameter中的bug
2-July-2003 - 2.10 版本
添加与ADOX类一起使用的时候兼容性(应很多人的要求)
添加Added CADODatabase::SetConnectionMode, CADORecordset::OpenSchema
添加CJetEngine::CCompactDatabase
2-October-2003 - 2.11版本
Jan Stocker修复在CADOCommand中的内存泄露
08-August-2004 - 创建了COLEDBDataLink 1.01版本
创建COLEDBDataLink 类,并添加到了ADO类中
10-Februry-2005 - 2.15版本
添加了CADOException 类
特别感谢
这些类受到了很多用户的建议,非常感谢您们的合作
* Rainer Mangold
* Christian Graus
* Mike Osbahr
* Francis BONTHOUX
* Spiros Prantalos
* Robert Pittenger
* Giles Forster
* Rob Sandhu
* Marcel Stoica
* Daniel Berman
* Jan Stocker
* And tons of people requesting for new versions.
许可
这篇文章,以及任何相关源代码和文件,授权见The Microsoft Public License (Ms-PL)
关于作者
Carlos Antollini 是一个软件工程师,致力于面向对象,Visual C++, MFC, COM, ATL, ADO,互联网技术和商业智能工作
Carlos来自阿根廷,住在劳德代尔堡,佛罗里达州,为花旗银行工作多年。然后他开始了他的事业。
Carlos是"http://www.piFive.com">piFive["_blank" title="piFive" href="http://www.piFive.com">^]创作者,一家商业智能分析平台软件,它涉及到未来"http://www.latinsys.com">latinsys["_blank" title="latinsys" href="http://www.latinsys.com">^],他的合伙人企业
目前他在花旗集团分享项目管理和BI热情
工作:设计师
公司名称:花旗集团
国籍:阿根廷