新手,刚做了个小程序但是只用了一次SELCET 的语句,想重复进行SQL查询,怎么解决呢?谢谢了!

解决方案 »

  1.   

    我的意思是其它的什么初始 这些工作pCommand.CreateInstance("ADODB.Command");
    //_pRecordset.CreateInstance("ADODB.Recordset");
    //  m_pConnection.CreateInstance("ADODB.Connection");
    还都要从新做一次吗?
      

  2.   

    正常查询:
    1。打开表
    2。利用SQL语句进行查询(将数据放入控件中如:网格控件)
    3。关闭。
    ----------
    此操作可执行1-N次(N为整数)。
    你一试就会!!!
      

  3.   

    初始化的工作就不用再做了
    _RecordsetPtr Close后再打开。
      

  4.   

    不用重新初始化,如果用command对象,再执行一次execute就可以了
      

  5.   

    HRESULT ExecuteSqlCommand( LPCTSTR lpTable, LPCTSTR lpSqlExecute )
    {
    BOOL bSuccess = FALSE; if( lpTable == NULL || lpSqlExecute == NULL )
    return E_FAIL; IADORecordBinding   *picRs = NULL;
    _RecordsetPtr pRs("ADODB.Recordset");//初始化记录查询
    _ConnectionPtr pConn("ADODB.Connection" );//初始化记录连接
    _CommandPtr     pCmdChange  = NULL; CString  strSql,chSqlSentence; strSql = strSql +
    _T("Provider=Microsoft.Jet.OLEDB.4.0;") +
    _T("Data Source = ") + 
    m_szMdbPath +
    _T(";Persist Security Info=False;Jet OLEDB:Database Password=") +
    m_lpPass; try
    {
    pConn->Open((_bstr_t)strSql, "", "", adModeUnknown);//打开数据库
    pRs->QueryInterface(
    __uuidof(IADORecordBinding), (LPVOID*)&picRs); TESTHR(pCmdChange.CreateInstance(__uuidof(Command)));
    pCmdChange->ActiveConnection = pConn;
    pCmdChange->CommandText = lpSqlExecute; // Open titles table, casting Connection pointer to an 
    // IDispatch type so converted to correct type of variant.
    TESTHR(pRs.CreateInstance(__uuidof(Recordset)));
    pRs->Open ((_variant_t)lpTable, _variant_t((IDispatch *) pConn, true), adOpenStatic, adLockOptimistic, adCmdTable);
    // Clear extraneous errors from the Errors collection.
    pConn->Errors->Clear(); // Use the Connection object's execute method to
    // execute SQL statement to restore data.
    pConn->Execute(lpSqlExecute, NULL, adExecuteNoRecords); // Retrieve the current data by requerying the recordset.
    pRs->Requery(adCmdUnknown); //pRs->Update();
    pRs->Close(); bSuccess = TRUE;
    }
    catch (...)
    {
    if ( pRs != NULL )
    pRs->Close(); if ( pConn != NULL )
    pConn->Close(); pRs = NULL;
    pConn = NULL;
    return E_FAIL;
    } pConn->Close();
    return S_OK;
    }