我用ODBC方式编了一个数据库程序,
用了两个对话框,
四个类:CDBApp,CDBDlg,CDBSet,CSubDlg,
调试时,出现如下两个错误:F:\藏经阁\vc相关\DB\SubDlg.cpp(71) : error C2065: 'm_pSet' : undeclared identifier
F:\藏经阁\vc相关\DB\SubDlg.cpp(71) : error C2227: left of '->MoveFirst' must point to class/struct/union
请达人帮忙

解决方案 »

  1.   

    m_pSet你定义在哪的,CDBApp中吗??
    然后再哪个类调用的??
      

  2.   

    书上说m_pSet是CDialog类对象自带的指针,我就以为不用再定义了,
    请问,如果要定义m_pSet的话,
    或者要使用m_pSet的话,应该怎么办?我的程序如下:
    两个对话框:
    1。包含一个CListCtrl控件,两个按钮,“显示”,“修改”
    2。包含七个EDIT和七个Label,两个按钮,“OK”,“CANCEL”目的是用ODBC方式访问数据库,在CListCtrl中显示数据库表格中的内容,并且可以修改数据库内容,
    /////////////////////////////////////////////////////////////////
    BOOL CDBDlg::OnInitDialog()//初始化对话框
    {
    CDialog::OnInitDialog(); m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    m_list.InsertColumn(0,"编号",LVCFMT_LEFT,40);
    m_list.InsertColumn(1,"球队名称",LVCFMT_LEFT,60);
        m_list.InsertColumn(2,"赛",LVCFMT_LEFT,45);
        m_list.InsertColumn(3,"胜",LVCFMT_LEFT,40);
        m_list.InsertColumn(4,"平",LVCFMT_LEFT,40);
        m_list.InsertColumn(5,"负",LVCFMT_LEFT,40);
        m_list.InsertColumn(6,"积分",LVCFMT_LEFT,60); return TRUE;  // return TRUE  unless you set the focus to a control
    }////////////////////////////////////////////////////////////////////////
    void CDBDlg::OnBtnEdit() //按钮“修改”,调出另一个对话框,用来修改原对话框
                              //中ListCtrl中的内容
    {
    // TODO: Add your control notification handler code here CSubDlg dlg; dlg.DoModal();
    }
    /////////////////////////////////////////////////////////////////////////////
    void CDBDlg::OnBtnShow() //按钮“显示”
    {
    // TODO: Add your control notification handler code here
    m_list.DeleteAllItems();
    int i=0;
    m_pSet->MoveFirst();
    do
    {
    CString s;
    s.Format("%d",m_pSet->m_column1);
    m_list.InsertItem(i,s,0);
    m_list.SetItemText(i,1,m_pSet->m_column2); s.Format("%d",m_pSet->m_column3);
    m_list.SetItemText(i,2,m_pSet->m_column3);     s.Format("%d",m_pSet->m_column4);
    m_list.SetItemText(i,2,m_pSet->m_column4);

            s.Format("%d",m_pSet->m_column5);
    m_list.SetItemText(i,2,m_pSet->m_column5);        s.Format("%d",m_pSet->m_column6);
    m_list.SetItemText(i,2,m_pSet->m_column6);
     
            s.Format("%d",m_pSet->m_column7);
    m_list.SetItemText(i,2,m_pSet->m_column7); i++;
    m_pSet->MoveNext();
    }while(!m_pSet->IsEOF());
    }
    ////////////////////////////////////////////////////////////////////////////
      

  3.   

    错误如下:Compiling...
    DBDlg.cpp
    F:\藏经阁\vc相关\DB\DBDlg.cpp(200) : error C2065: 'm_pSet' : undeclared identifier
    F:\藏经阁\vc相关\DB\DBDlg.cpp(200) : error C2227: left of '->MoveFirst' must point to class/struct/union
    F:\藏经阁\vc相关\DB\DBDlg.cpp(204) : error C2227: left of '->m_column1' must point to class/struct/union
    请教高手,
      

  4.   

    CDBSet::CDBSet(CDatabase* pdb)
    : CRecordset(pdb)
    {.........
    CString CDBSet::GetDefaultConnect()
    {
    return _T("ODBC;DSN=aaa");
    }CString CDBSet::GetDefaultSQL()
    {
    return _T("[基本表]");
    }}由连接数据库阿,如上
      

  5.   

    小三大哥:我有加阿:// stdafx.h : include file for standard system include files,
    //  or project specific include files that are used frequently, but
    //      are changed infrequently
    #include <afxwin.h>         // MFC core and standard components
    #include <afxext.h>         // MFC extensions
    #include <afxdisp.h>        // MFC Automation classes
    #include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
    #ifndef _AFX_NO_AFXCMN_SUPPORT
    #include <afxcmn.h> // MFC support for Windows Common Controls
    #endif // _AFX_NO_AFXCMN_SUPPORT
    #include <afxdb.h>
      

  6.   

    那么CDBSet *m_pSet;
    应该加在那个文件里呢?
    不好意思.....
      

  7.   

    但是我在  dbDlg.h加入了CDBSet *m_pSet;之后
    有多了三个错误:
    Compiling...
    DBDlg.cpp
    f:\藏经阁\vc相关\db\dbdlg.h(19) : error C2143: syntax error : missing ';' before '*'
    f:\藏经阁\vc相关\db\dbdlg.h(19) : error C2501: 'CDBSet' : missing storage-class or type specifiers
    f:\藏经阁\vc相关\db\dbdlg.h(19) : error C2501: 'm_pSet' : missing storage-class or type specifiers请问,这次应该怎么办?
      

  8.   

    CDBSet没定义?
    dbdlg.h中没有#include <afxdb.h>
      

  9.   

    应该不会,dbdlg.h 肯定 #include <afxstd.h>了
      

  10.   

    对:lfchen(一条晚起的虫)
    dbdlg.h中确实有#include <afxdb.h>
      

  11.   

    加:
    #include "dbset.h"