随笔分类 - ADO
摘要:void CTestDlg::OnInitConnect() //ADO远程连接SQL 2005数据库{ //注意端口和IP之间有一外逗号哦!...MyDb为数据库名。 strSQL.Format(_T("Driver={SQL Server};Server=192.168.47.144,1433;DATABASE=MyDb;UID=sa;PWD=123456"));try { m_pConnect->Open((_bstr_t)strSQL, _T(""), _T(""), adModeUnknown);AfxMessageB
阅读全文
摘要:CString str;str.Format("Name='%s'",m_Name); //Name为查询的字段,m_Name为查询的名字m_pRecordset->Filter=(_bstr_t)str; //开始查询m_pRecordset->Requery(0); //用查询结果更新当前记录集//向列表插入查询到的数据int i=0;while(!m_pRecordset->adoEOF){m_Grid.SetItemText(i,0,(TCHAR *)(_bstr_t)m_pRecordset->GetCollect(&quo
阅读全文
摘要:UINT CADOConn::GetRecordsetCount(_RecordsetPtr pRecordset){ UINT nCount=0; //用于保存记录数 try { pRecordset->MoveFirst(); //将记录集指针移到第一条记录 } catch(_com_error e) { AfxMessageBox(TEXT("获取记录集失败,请确认当前记录集是否已经打开!")); AfxMessageBox(e.Description()); AfxMessageBox(e.ErrorMessageBox()); return 0; } if(
阅读全文
摘要:void CADOConn::CloseConn(){ if(m_pConnection->GetState()==adStateOpen) //判断当前连接对象指针的状态是否为打开状态 { m_pConnection->Close(); //关闭连接 } ::CoUninitialize(); //释放COM环境}
阅读全文
摘要:void CADOConn::CloseRecordset(){ if(m_pRecordset->GetState()==adStateOpen) //判断记录集状态是否为打开状态 { m_pRecordset->Close(); //关闭记录集 }}
阅读全文
摘要:_RecordsetPtr& CADOConn::OpenRecordset(CString sql){ ASSERT(!sql.IsEmpty()); //SQL语句不能为空 try { m_pRecordset.CreateInstance(TEXT("ADODB.Recordset")); //创建记录集对象实例 m_pRecordset->Open((_bstr_t)sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); //打开记录集 }catch(
阅读全文
摘要:BOOL CADOConn::OnInitADOConn(){ ::CoInitialize(NULL); //初始化COM环境 try { m_pConnection.CreateInstance(TEXT("ADODB.Connection")); //创建连接对象实例 _bstr_t strConnect="连接语句"; m_pConnection->Open(strConnect,"","",adModeUnKnown); //连接数据库 } catch(_com_error e) //捕获错误 {
阅读全文
摘要://在类的头文件引入ADO类库#inport "C:\\Programs Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoEOF")class CADOConn{public: _ConnectionPtr m_pConnection; //定义连接对象指针_RecordsetPtr m_pRecordset; //定义记录集对象指针public
阅读全文
摘要://昨天在打开数据库的记录集时,出现了一个错误,错误提示为无效的指针类型,上网查了一下,原来是我的//的程序在创建实例时,出现了错误,呵呵,以前我都是这样创建实例的:m_pRecordset.CreateInstance(_uuidof(Connection))//我调试程序错误时的代码如下://创建实例HRESULT hr=adoConn.m_pRecordset.CreateInstance(_uuidof(Connection));if (FAILED(hr)){ _com_error e(hr); AfxMessageBox(e.ErrorMessage()); return;}结果得
阅读全文
摘要://呵呵,这应该算是最简单的一个参数了吧Options可以取如下值之一:adCmdText //表明CommandText是文本命令。adCmdTable//表明CommandText是一个表名。adCmdProc //表明CommandText是一个存储过程。adCmdUnknown //未知。
阅读全文
摘要://打开记录集也不得不考虑锁定类型,呵呵,记录下,权当加深记忆和理解吧!LockType锁定类型,它可以是以下值之一:adLockUnspecified=-1 //未指定adLockReadOnly=1 //只读记录集,默认值。无法更改数据adLockPessimistic=2 //悲观锁定方式。只有在调用Update方法时才锁定记录。这是最安全的锁定机制adLockOptimistc=3 //乐观锁定方式,只有在你调用Update方法时才锁定记录。在此之前仍然可以做数据的更新、插入、删除等操作adLockBatchOptimistic=4 //乐观分批更新。编辑时记录不会锁定,更改、插入及删
阅读全文
摘要://打开记录集时经常要考虑要用什么类型的光标,呵呵,记录下,免得以后还得去百度找呢!...光标类型CursorType,可取如下值之一:adOpenUnspecified=-1 不作特别指定adOpenForwardOnly=0 默认值,前滚静态光标。这种光标只能向前浏览记录集,比如用MoveNext向前滚动, 这种方式可节省资源,提高浏览速度,但诸如BookMark、RecordCount、AbsolutePosition AbsolutePage都不能使用。adOpenKeyset=1 键集游标,采用这种光标的记录集看不到其它用户的新增、删除操作, 但对于更新原有记录的操作对你是可见的。a
阅读全文
摘要://呵呵,在网上查了下资料,再加上自己的亲自实践,还真获得了记录总数,在此记录下关键代码,以后用得着呢!//记得我第一次获取记录总数的时侯得到了一个-1,呵呵,现在终于明白是啥回事了,原来是游标的选择问题啊!//关键代码如下try//获取记录集总数{m_recordset.CreateInstance(_uuidof(Recordset));m_recordset->Open("SELECT * FROM Guestbook",m_connection.GetInterfacePtr(),adOpenStatic,//用静态游标adLockOptimistic,adC
阅读全文