ADO连Oracle有必要为每一张表都创建一个类吗&&程序异常求救

ADO连Oracle有必要为每一张表都创建一个类吗&&程序错误求救~
之前看到过ADO 和ODBC连SQL Server2000时都为各表创建了类~如题~创建类后的有缺点是啥啊?小菜鸟最近正学习这个~可惜周围没有搞这方面的,幸好可以网上求助~望各位大侠不吝赐教~偶在这先行谢过了
C/C++ code
BOOL UserM::OnInitDialog() 
{
    CDialog::OnInitDialog();
    m_listuserm.SetExtendedStyle(LVS_EX_FLATSB
        |LVS_EX_FULLROWSELECT
        |LVS_EX_HEADERDRAGDROP
        |LVS_EX_ONECLICKACTIVATE
        |LVS_EX_GRIDLINES);   //设置列表框控件扩展风格
    //初始用户信息列表框控件
    m_listuserm.InsertColumn(0,"USERID",LVCFMT_CENTER,50);
    m_listuserm.InsertColumn(1,"UNAME",LVCFMT_CENTER,80);
    m_listuserm.InsertColumn(2,"PASSW",LVCFMT_CENTER,80);
    m_listuserm.InsertColumn(3,"TYPED",LVCFMT_CENTER,80);
    m_listuserm.InsertColumn(4,"INF1",LVCFMT_CENTER,100);
    m_listuserm.InsertColumn(5,"INF2",LVCFMT_CENTER,100);
    m_listuserm.InsertColumn(6,"INF3",LVCFMT_CENTER,100);
    
    // TODO: Add extra initialization here
    
    return TRUE;  // return TRUE unless you set the focus to a control
    // EXCEPTION: OCX Property Pages should return FALSE
}

void UserM::Onrefreshstr() //数据刷新按钮
{       m_listuserm.DeleteAllItems();  //清楚所有列表项

        m_ado.OnInitADOConn();
        CString sql="select * from LOGINF";
        m_ado.m_pRecordset = m_ado.GetRecordSet(sql);
                  Fields * fields=NULL;
        long countl,i;
        BSTR bstr;
//        countl=fields->Count;
        fields->get_Count(&countl);
        for( i=countl-1;i>=0;i--)
        {
            fields->Item[i]->get_Name(&bstr);
            m_listuserm.InsertColumn(i,(CString)bstr,LVCFMT_LEFT,100,0);
        }
        int k;
        _variant_t var;
        tagVARIANT varFieldVal;
        var.vt = VT_I2;
        FieldPtr pField;
        while(!m_pRecordset->adoEOF)
        {
            m_listuserm.InsertItem(0, "");
            for(k=countl-1;k>=0;k--)
            {
                var.iVal = k;
                pField = m_pRecordset->Fields->GetItem(var);
                pField->get_Value(&varFieldVal);
                if(varFieldVal.vt != VT_NULL)
                    m_listuserm.SetItemText(0,k,(char*)(_bstr_t)varFieldVal);
                m_listuserm.InsertColumn(i,(CString)bstr,LVCFMT_LEFT,100,0);
            }
            m_pRecordset->MoveNext();
        }

        m_ado.ExitConnect();
}



实现功能:创建两个非主窗口的对话框1和对话框2,运行后点击“更新”按钮,能够将数据库中一张表的信息显示到对话框1的列表控件中;对话框2的编辑框中添加相关信息后,可以保存到数据库中,并能够在对话框1的列表控件中显示出来~
再次感谢~

------解决方案--------------------
如果你的两个对话框是模态的问题很好解决:只要将dialog2中数据插入数据库中,dialog1的初始化对话框程序中的sql语句执行了就行了;
如果是非模态的比较难弄:加一个线程或是???