关于_RecordsetPtr的方法、函数问题

mazhihua 2005-12-10 12:55:07
我是初学ADO的,想请问下我定义了一个_RecordsetPtr的变量_RecordsetPtr m_pRecordset;
怎么调用它的函数和方法?
哪里有详细的_RecordsetPtr的介绍?谢谢!
...全文
379 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangl79 2005-12-11
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=215
只见烟火飞扬 2005-12-10
  • 打赏
  • 举报
回复
//下面是我的一些步骤,没仔细整理:)===================
001
// stdafx.h
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
002
定义全局变量_ConnectionPtr m_pConnection;
003
BOOL C*YourProject*App::InitInstance()
{
AfxOleInit(); //初始化COM库
//---------------------------------------------------------------------------
CString strSQL;
HRESULT hr;
try
{
hr=m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=xsbm;Data Source=yjm";
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open(_bstr_t(strSQL),"","",-1);
}
}
catch(_com_error e)//捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return FALSE;
}
//AfxMessageBox("connected~~");
//下面注释的是访问ACCESS的连接方法
/* HRESULT hr;
try
{

hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr)) {
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库
///上面一句中的连接字符串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改:Provider=Microsoft.Jet.OLEDB.3.51; }
}
}
catch(_com_error e)//捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return FALSE;
}
*/

004
int C*YourProject*App::ExitInstance()
{
// TODO: Add your specialized code here and/or call the base class
//----------------------------------------------------------
if(m_pConnection->State)
m_pConnection->Close(); ///如果已经打开了连接就关闭它
//----------------------------------------------------------
return CWinApp::ExitInstance();
}

005
//添加记录
//---------------------------------------------------------------
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("SELECT * FROM [user]",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
m_pRecordset->AddNew();
if(!m_pRecordset->adoEOF)
{
m_pRecordset->PutCollect("yhm",_variant_t(uedlg.m_userName));
m_pRecordset->PutCollect("mm",_variant_t(""));
m_pRecordset->Update();
}
m_pRecordset->Close();
//------------------------------------------------------------

006
//删除记录------------------------------------------------------------
_RecordsetPtr m_pRecordset;
try
{
//删除user表的2字段记录
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(_variant_t("select * FROM [user] where yhm='"+userName+"'"),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Close();
//---------------------------------------------------
//查询符合删除条件的记录数目
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(_variant_t("select count(*) FROM [qxb] where yhm='"+userName+"'"),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
_variant_t vCount=m_pRecordset->GetCollect((long)0);
m_pRecordset->Close();
long lRecordCount=vCount.lVal;
//删除qxb表的2字段记录
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(_variant_t("select * FROM [qxb] where yhm='"+userName+"'"),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
while(!m_pRecordset->adoEOF)
{
m_pRecordset->Delete(adAffectCurrent);
if(lRecordCount-->0)
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
//-----------------------------------------------------------------
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
//------------------------------------------------------------
//------------------------------------------------------------
}
007
//更新数据库记录
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(_variant_t("SELECT * FROM [xsb] where xm='"+m_list.GetItemText(m_nIndex, 1)+"'"),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
try
{
if(!m_pRecordset->adoEOF)
{

int i=0;
m_pRecordset->PutCollect("xh",_variant_t(xsbRecord[i++]));
m_pRecordset->PutCollect("xm",_variant_t(xsbRecord[i++]));
m_pRecordset->PutCollect("xb",_variant_t(xsbRecord[i++]));

COleDateTime date;
date.ParseDateTime(xsbRecord[i++]);
if(date.GetYear() != -1)//日期检测
m_pRecordset->PutCollect("csny",_variant_t(date));
m_pRecordset->PutCollect("jtdz",_variant_t(xsbRecord[i++]));
m_pRecordset->PutCollect("yzbm",_variant_t(xsbRecord[i++]));
m_pRecordset->PutCollect("lxdh",_variant_t(xsbRecord[i++]));

m_pRecordset->PutCollect("zydm",atol(xsbRecord[i++]));
m_pRecordset->PutCollect("xbdm",atol(xsbRecord[i++]));
m_pRecordset->PutCollect("gybh",_variant_t(xsbRecord[i++]));
m_pRecordset->PutCollect("gydm",atol(xsbRecord[i++]));
m_pRecordset->PutCollect("zt",atol(xsbRecord[i++]));

m_pRecordset->Update();
}
m_pRecordset->Close();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
//----------------------------------------------------------------

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧