ADO类
来源:互联网 发布:天池大数据竞赛官网 编辑:程序博客网 时间:2024/04/30 05:45
为了方便的操作ADO,这里提供4个类:CADODatabase,CADORecordset,CADOParameter,CADOCommand ,下面对类的成员作一介绍。B.1 CADODatabase类函数介绍CADODatabase类包含关于_ConnectionPtr的函数集合。// 打开一个数据库连接BOOL CADODatabase::Open(LPCTSTR lpstrConnection = _T("");//连接字符串)示例:// 访问SQL Server示例CADODatabase pAdoDb;CString strConnection = _T("");strConnection = _T("Provider=MSDASQL;PersistSecurityInfo=False;" "Trusted_Connection=Yes;" "Data Source=Access Sql Server;catalog=sampledb");pAdoDb.SetConnectionString(strConnection);if(pAdoDb.Open())DoSomething();// 访问Access示例CADODatabase pAdoDb;CString strConnection = _T("");strConnection = _T("Provider=Microsoft.Jet.OLEDB.4.0;" "Data Source=C:\\VCProjects\\ADO\\Test\\dbTest.mdb");pAdoDb.SetConnectionString(strConnection);if(pAdoDb.Open())DoSomething();// 对打开的数据库执行SQL语句BOOL CADODatabase::Execute(LPCTSTR lpstrExec //执行字符串)示例:CADODatabase pAdoDb;CString strConnection = _T("");strConnection = _T("Provider=MSDASQL;" "PersistSecurityInfo=False;" "Trusted_Connection=Yes" "Data Source=Access Sql Server;catalog=sampledb");if(pAdoDb.Open(strConnection))pAdoDb.Execute("Delete From tblClients Where Cheker = 3");// 返回最后一条SQL语句影响的记录数目int CADODatabase::GetRecordsAffected()// 返回活动的连接_ConnectionPtr CADODatabase::GetActiveConnection()// 返回查询中影响的记录数目DWORD CADODatabase::GetRecordCount(_RecordsetPtr m_pRs //记录集)// 提交一个事务long CADODatabase::BeginTransaction()// 结束目前的事务并且恢复所有数据库回到事务开始时的状态long CADODatabase::RollbackTransaction()// 数据库是否打开BOOL CADODatabase::IsOpen()// 关闭目前的数据库连接void CADODatabase::Close()// 插入连接字符串void CADODatabase::SetConnectionString(LPCTSTR lpstrConnection) //连接字符串)// 返回连接字符串CString CADODatabase::GetConnectionString()// 得到最后一次错误的代码DWORD CADODatabase::GetLastError()// 返回最后一次的错误字符串CString CADODatabase::GetLastErrorString()B.2 CADORecordset类函数介绍CADORecordset类包含关于_RecordsetPtr的函数集合。// 打开一个记录集BOOL CADORecordset::Open(_ConnectionPtr mpdb, // 连接指针LPCTSTR lpstrExec = _T(""), // 包含SQL选择状态的字符串指针int nOption = CADORecordset::openUnknown //定义接近模式// 包含 CADORecordset::openUnknown// 包含 CADORecordset::openQuery// 包含 CADORecordset::openTable// 包含 CADORecordset::openStoredProc)BOOL CADORecordset::Open(LPCTSTR lpstrExec = _T(""), int nOption = CADORecordset::openUnknown)// 执行记录集BOOL CADORecordset::Execute(CADOCommand* pCommand // CADOCommand指针)// 返回查询字符串CString CADORecordset::GetQuery// 设置查询字符串void CADORecordset::SetQuery(LPCSTR strQuery // 查询字符串)// 返回记录集的记录数DWORD CADORecordset::GetRecordCount()// 判断记录集是否打开BOOL CADORecordset::IsOpen()// 关闭记录集void CADORecordset::Close()// 返回记录集中的字段数目long CADORecordset::GetFieldCount()// 返回某字段的值BOOL CADORecordset::GetFieldValue// 某字段是否为NULLBOOL CADORecordset::IsFieldNull(LPCTSTR lpFieldName // 字段名字)BOOL CADORecordset::IsFieldNull(int nIndex // 字段索引)// 某字段是否为空BOOL CADORecordset::IsFieldEmpty(LPCTSTR lpFieldName // 字段名字)BOOL CADORecordset::IsFieldEmpty(int nIndex // 字段索引)// 判断记录集当前位置是否没记录BOOL CADORecordset::IsEof()// 判断是否在记录集的顶部BOOL CADORecordset::IsBof()// 移动记录void CADORecordset::MoveFirstvoid CADORecordset::MoveNextvoid CADORecordset::MovePreviousvoid CADORecordset::MoveLast// 得到和指定目前记录在哪一页long CADORecordset::GetAbsolutePage()void CADORecordset::SetAbsolutePage(int nPage //从1开始的页数)// 返回记录集页数long CADORecordset::GetPageCount()// 设置每页记录的数目long CADORecordset::GetPageSize()void CADORecordset::SetPageSize(int nSize //记录数目)示例:CADORecordset pRs(&pDb);if(pRs.Open("MyBigTable", CADORecordset::openTable)){pRs.SetPageSize(5); for(register int nPageIndex = 1; nPageIndex <= pRs.GetPageCount(); nPageIndex++) { pRs.SetAbsolutePage(nPageIndex); for(register int nRecNumber = 0; nRecNumber < pRs.GetPageSize(); nRecNumber++) { long lVal; pRs.GetFieldValue("ID", lVal); pRs.MoveNext(); if(pRs.IsEof()) break; } } pRs.Close();}// 指示记录集中记录的位置long CADORecordset::GetAbsolutePosition()void CADORecordset::SetAbsolutePosition(int nPosition //记录集中移动到的位置)// 返回字段的属性BOOL CADORecordset::GetFieldInfo(LPCTSTR lpFieldName, // 字段名字CAdoFieldInfo* fldInfo // 信息结构)BOOL CADORecordset::GetFieldInfo(int nIndex, // 字段索引CAdoFieldInfo* fldInfo)struct CADOFieldInfo{ char m_strName[30]; short m_nType; long m_lSize; long m_lDefinedSize; long m_lAttributes; short m_nOrdinalPosition; BOOL m_bRequired; BOOL m_bAllowZeroLength; long m_lCollatingOrder;};示例:CADORecordset prs(&m_pDb);if(prs.Open("Clients", CADORecordset::openTable)){ CADOFieldInfo pInfo; prs.GetFieldInfo("Description", &pInfo); if(pInfo.m_nType == CADORecordset::typeVarChar) AfxMessageBox("The type Description Field Is VarChar");}if(prs.Open("TestTable", CADORecordset::openTable)){ CADOFieldInfo* fInfo = new CADOFieldInfo; prs.GetFieldInfo(0, fInfo); CString strFieldName = fInfo->m_strName; prs.Close();}// 返回大数据字段对象BOOL CADORecordset::GetChunk(LPCTSTR lpFieldName, //字段名字 CString& strValue //包含字符串数据指针)BOOL CADORecordset::GetChunk(int nIndex, //字段索引CString& strValue)BOOL CADORecordset::GetChunk(LPCTSTR lpFieldName, LPVOID pData //包含对象数据指针)BOOL CADORecordset::GetChunk(int nIndex, LPVOID pData)// 将数据附加到字符和二进制字段对象上BOOL CADORecordset::AppendChunk(LPCTSTR lpFieldName, //字段名字LPVOID lpData, //数据对象UINT nBytes //插入的数据大小)BOOL CADORecordset::AppendChunk(int nIndex, //字段索引LPVOID lpData, UINT nBytes)示例:// Sample of AppendChunckprs.AddNew();prs.SetFieldValue("ID", 5);prs.SetFieldValue("Description", "Client 05");prs.SetFieldValue("Checker", 1);prs.AppendChunk("Document", "This Document is the story of Bob and his Friends...", 37);prs.Update();// Sample of GetChunckchar data[1024];prs.GetChunk("Document", (LPVOID)&data);// 将记录集作为字符串返回CString CADORecordset::GetString(LPCTSTR lpCols, // 列分割符LPCTSTR lpRows, // 行分隔符LPCTSTR lpNull, // 表达一个NULL值long numRows = 0 // 影响的行数目)// 返回最后一个错误代码DWORD CADORecordset::GetLastError()// 返回最后一个错误字符串CString CADORecordset::GetLastErrorString()// 在打开的记录集增加一条记录BOOL CADORecordset::AddNew()// 允许修改一条记录void CADORecordset::Edit()// 删除当前的记录BOOL CADORecordset::Delete()// 更新当前记录中的更新操作BOOL CADORecordset::Update()// 取消当前更新操作void CADORecordset::CancelUpdate()// 设置字段值BOOL CADORecordset::SetFieldValue示例:CADORecordset prs(&m_pAdoDb);prs.Open("Test", openTable);prs.AddNew();prs.SetFieldValue(0, "dataU");prs.SetFieldValue(1, "data01");prs.SetFieldValue(2, (long)51000);COleDateTime time = COleDateTime(2001,6,15, 10, 8, 30);prs.SetFieldValue(3, time);prs.Update();// 定位字符串BOOL CADORecordset::Find(LPCTSTR lpFind, // 用来定位记录的字符串int nSearchDirection // 查找方向// CADORecordset::searchForward 向前// CADORecordset::searchBackward 向后)示例:if(prs.Find("Field0 LIKE 'dataU%'")){prs.Delete();while(prs.FindNext())prs.Delete();}// 定位字符串BOOL CADORecordset::FindFirst(LPCTSTR lpFind //用来定位记录的字符串)// 从上一位置开始查找字符串BOOL CADORecordset::FindNext()// 存储当前记录位置BOOL CADORecordset::GetBookmark()// 返回存储的记录位置void CADORecordset::SetBookmark()// 设置数据滤波器BOOL CADORecordset::SetFilter(LPCTSTR strFilter //用多个与或连接的字符串)示例:CADORecordset m_pRs;m_pRs = CADORecordset(&m_pDb);if(m_pRs.Open("tblTest", CADORecordset::openTable)){ CString strFilter = _T("LastName = 'Smith' And Age > 30"); m_pRs.SetFilter(strFilter); m_pRs.Close();}// 设置记录集的排队顺序BOOL CADORecordset::SetSort(LPCTSTR lpstrCriteria //SQL顺序字符串)// 返回打开记录集的指针_RecordsetPtr CADORecordset::GetRecordset()//复制CADORecordset对象BOOL CADORecordset::Clone(CADORecordset pAdoRecordset //现存的CADORecordset对象)示例:CADORecordset m_pRs; //Original RecordsetCADORecordset RS; //Duplicate Recordsetm_pRs = CADORecordset(&m_pDb);if(m_pRs.Open("tblTest", CADORecordset::openTable)) //Open the Original Recordset{ m_pRs.Clone(RS); //Create the clone of the original Recordset long lClonRecs = RS.GetRecordCount(); long lOrigRecs = m_pRs.GetRecordCount(); RS.Close(); m_pRs.Close();}//存储记录集到XML文件BOOL CADORecordset::SaveAsXML(LPCTSTR lpstrXMLFile //文件位置)//打开XML文件BOOL CADORecordset::OpenXML(LPCTSTR lpstrXMLFile //文件位置)示例:CADORecordset pRs;if(prs.OpenXML("C:\\My.XML")){ CString strClient = _T(""); double dblVal = 0; long lrecs = prs.GetRecordCount(); if(!prs.IsEof()) prs.MoveFirst(); prs.GetFieldValue("Budget", dblVal); prs.GetFieldValue("ClientName", strClient); prs.Close();}B.3 CADOParameter类函数介绍CADOParameter类包含关于_ParameterPtr的函数集合。// 构造函数CADOParameter::CADOParameter(int nType, //明确CADOParameter对象的数据类型long lSize = 0, //明确参数值的最大长度int nDirection = paramInput, //明确CADOParameter对象的方向// CADOParameter::paramUnknown 参数方向未知// CADOParameter::paramInput 表示输入参数// CADOParameter::paramOutput 表示输出参数// CADOParameter::paramInputOutput 表示输入输出参数// CADOParameter::paramReturnValue 表示返回值 CString strName = _T("") // CADOParameter对象的名字)//设置CADOParameter对象值BOOL CADOParameter::SetValue(int nValue //整型)BOOL CADOParameter::SetValue(long lValue //长整型)BOOL CADOParameter::SetValue(double dbValue //双精度型)BOOL CADOParameter::SetValue(CString strValue //字符串型)BOOL CADOParameter::SetValue(COleDateTime time //时间型)BOOL CADOParameter::SetValue(_variant_t vtValue //可变换型)// 设置CADOParameter对象的尺度void CADOParameter::SetPrecision(int nPrecision //尺度)// 设置CADOParameter对象的精度void CADOParameter::SetPrecision(int nPrecision //精度)// 返回CADOParameter对象的值BOOL CADOParameter::GetValue(int& nValue //整型)BOOL CADOParameter::GetValue(long& lValue //长整型)BOOL CADOParameter::GetValue(double& dbValue //双精度型)BOOL CADOParameter::GetValue(CString& strValue, //字符串型CString strDateFormat = _T(""))BOOL CADOParameter::GetValue(COleDateTime& time //时间型)BOOL CADOParameter::GetValue(_variant_t& vtValue //可变换型)// 设置对象名字CString CADOParameter::SetName(CString strName //名字)// 返回对象名字CString CADOParameter::GetName// 返回对象类型int CADOParameter::GetType()// 返回对象指针_ParameterPtr CADOParameter::GetParameterB.4 CADOCommand类函数介绍CADOCommand类包含关于_CommandPtr的函数集合。// 构造函数CADOCommand::CADOCommand(CADODatabase* pAdoDatabase, // CADODatabase对象指针CString strCommandText = _T(""), //CADODatabase对象的字符串int nCommandType = typeCmdStoredProc //CADODatabase对象类型// CADOCommand::typeCmdText 将strCommandText作为命令字符定义或存储过程// CADOCommand::typeCmdTable 将strCommandText作为表名,该表的列由内部SQL查询返回// CADOCommand::typeCmdTableDirect将strCommandText作为表名,所有列返回// CADOCommand::typeCmdStoredProc 将strCommandText存储过程名字// CADOCommand::typeCmdUnknown 命令类型未知// CADOCommand::typeCmdFile strCommandText作为文件名字)// 加参数BOOL CADOCommand::AddParameter// 设置命令文本void CADOCommand::SetText(CString strCommandText //命令文本)// 返回命令文本CString CADOCommand::GetText// 设置CADOCommand对象类型void CADOCommand::SetType(int nCommandType //指示CADOCommand对象类型的整数值)// 返回命令对象指针_CommandPtr CADOCommand::GetCommand// 执行命令文本BOOL CADOCommand::Execute
0 0
- ADO类
- ado操作类
- VC(ADO类)
- ADO.NET:ADODataReader类
- ADO.NET:ADODataReader类
- ADO.NET基本类
- ADO.NET 类
- ADO.NET连接类
- 最新的ADO类
- ADO封装类详解
- ADO公共类
- ADO封装类详解
- ADO封装类详解
- ADO简单封装类
- ADO数据库连接池类
- ado
- ADO
- ado
- Winform 界面 美化 界面库
- 软件开发过程中的一些感悟
- CDN简介
- linux 学习
- curl常用命令
- ADO类
- 深度解析中文分词器算法(最大正向/逆向匹配)
- cannot find protocol declaration for "RefreshAudioListViewDelegate”
- Leetcode: Binary Tree Preorder Inooder Traversal
- JFinal的ORM支持(二)
- 《数据库》总结
- 学术休假---300以内的特殊数
- 15.02.07,C数据类型笔记03
- undo异常