默认的ADO连接游标不支持MOVELAST
在对记录集进行MOVELAST的时候出现错误谁给一段让记录集支持MOVELAST的代码?谢谢

解决方案 »

  1.   

    CToolLibrary ToolLib; ToolLib.OpenConnection();//
    //程序执行到这三行的时候出现错误,这三行程序该放在那里来让记录集支持游标MOVELAST?
    //
             ToolLib.m_pConnection->CursorLocation = adUseClient;
    ToolLib.m_pRecordset->CursorLocation = adUseClient;
    ToolLib.m_pRecordset->CursorType = adOpenKeyset; _bstr_t Command = "select * from ddflml";
    _variant_t RecordsAffected;

    ToolLib.m_pRecordset = ToolLib.m_pConnection->Execute(Command,&RecordsAffected,adCmdText);

    *****************************************************************
    BOOL CToolLibrary::OpenConnection()
    {
    HRESULT hr;
    try
    {
    hr = m_pConnection.CreateInstance(__uuidof(Connection));///创建Connection对象
    if(SUCCEEDED(hr)) 
    {
    char buffer[128];
    ZeroMemory(buffer,128);
    CString FilePath = MakeCurrentPath();
    ::GetPrivateProfileString("database","Address",NULL,buffer,128,FilePath);
    CString szAddress = buffer;
    ZeroMemory(buffer,128);
    ::GetPrivateProfileString("database","UserName",NULL,buffer,128,FilePath);
    CString szUserName = buffer;
    ZeroMemory(buffer,128);
    ::GetPrivateProfileString("database","Password",NULL,buffer,128,FilePath); CString strCode = RestoreCode(buffer);
    CString szPassword = DecryptDes(strCode);

    _bstr_t DataString = "Provider=SQLOLEDB;SERVER=";
    _bstr_t temp = _bstr_t(szAddress);
    DataString += temp;
    DataString += ";DATABASE=arch;UID=";
    DataString += _bstr_t(szUserName);
    DataString += "; PWD=";
    temp=_bstr_t(szPassword);
    DataString += temp;

    hr = m_pConnection->Open(DataString,"","",adModeUnknown);
    }
    }
    catch(_com_error e)///捕捉异常 
    {
    CString errormessage; 
    errormessage.Format("连接数据库失败!程序即将退出,请联系系统管理员!\r\n错误信息:%s",e.ErrorMessage());
    ::MessageBox(NULL,errormessage,"错误",MB_ICONWARNING);
    ExitProcess(1);
    }

    return TRUE;
    }
      

  2.   


    把这三行程序放在和数据库建立连接之前也会出现出错误
             ToolLib.m_pConnection->CursorLocation = adUseClient;
    ToolLib.m_pRecordset->CursorLocation = adUseClient;
    ToolLib.m_pRecordset->CursorType = adOpenKeyset;
      

  3.   

    代码太长,没时间看
    不过movelast经常用,没发现什么问题
    参考一下这个
    http://www.vckbase.com/document/viewdoc.asp?id=215
      

  4.   

    在Recordset的open方法中著名游标的使用权限,查msdn呀
      

  5.   

    m_connection是否为空?可有判断?