我是在vc6下的对话框程序中连接odbc数据源,然后执行sql脚本,用的是SQLAllocHandle,SQLConnect,SQLExecute语句,之后显示该调用其他函数来执行?
我看到有些文章讲是用 HRESULT hr = m_pRecordset->Open(...)等等之类的语句,是不是有其他相似的方法来完成。
谢谢!!!

解决方案 »

  1.   

    MFC提供了控件绑定,可以方便地显示搜索结果,具体请参看MSDN相关章节。
      

  2.   

    SQLExecute执行之后返回的不是结果集,能说具体一点吗?是用到SQLBindCol函数和控件CListCtrl控件吗?有没有具体的例子借小弟我参考一下,谢谢!
      

  3.   

    你可以冲记录集中数据给读出来的 然后一个一个的放进控件中http://www.ccw.com.cn/htm/produ/special/vc/jiqiao/01_9_14_4.asp
      

  4.   

    如果你设置的是变量如m_UserName对应对话框控件ID_UserName,m_UserPwd对应ID_UserPwd,则用以下方法:
    this->m_UserName=m_pSet->m_UserName;//m_pSet是一个记录集
    this->m_UserPwd=m_pSet->m_UserPwd;
    GetDlgItem(IDC_USERNAME)->SetWindowText(m_UserName);
    GetDlgItem(IDC_USERPWD)->SetWindowText(m_UserPwd);
    如果设置的是控件变量则用:
    this->m_UserName.GetWindowText(m_pSet->m_UserName);
    this->m_UserPwd.GetWindowText(m_pSet->m_UserPwd);
      

  5.   

    我的程序如下,可能是我没有表达清楚,我用的是对话框程序,没有用单/多文档结构,所以在winzard里面没有设置数据源那项,也就没用到CDataBase,CRecordSet类。底下我的程序运行老是
    弹出对话框(failed !);不知道程序是否执行了sql语句。大家提点意见,帮我改改!谢谢!
    void CExesqlDlg::OnSQL()
    {
             SQLHENV henv;
    SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv); 
    SQLHDBC hdbc;
    SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
    SQLConnect(hdbc,SQLCHAR*)"user",SQL_NTS,SQLCHAR*) "111",
                         SQL_NTS,SQLCHAR*) "111",SQL_NTS);
    SQLHSTMT hStatement;
    SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hStatement);
    SQLRETURN retcode;
    SQLPrepare(&hStatement,(SQLCHAR*)"select * from user",19);
    retcode=SQLExecute(&hStatement);
    if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
    AfxMessageBox("Succeed in execute\n sql statment!");
    }else{
    AfxMessageBox("failed\n !");
    }
    }