分类: 数据库开发技术
2008-03-14 10:30:16
[常量] | [说明] |
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(); }
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 方法:
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);把变体型变量转换成其他类型变量.