首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-01-24 
ADO连Oracle有必要为每一张表都创建一个类吗&&程序错误求救~之前看到过ADO 和ODBC连SQL Server2000时都为

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语句执行了就行了;
如果是非模态的比较难弄:加一个线程或是???

热点排行