ADO连Oracle有必要为每一张表都创建一个类吗&&程序异常求救
ADO连Oracle有必要为每一张表都创建一个类吗&&程序错误求救~
之前看到过ADO 和ODBC连SQL Server2000时都为各表创建了类~如题~创建类后的有缺点是啥啊?小菜鸟最近正学习这个~可惜周围没有搞这方面的,幸好可以网上求助~望各位大侠不吝赐教~偶在这先行谢过了
实现功能:创建两个非主窗口的对话框1和对话框2,运行后点击“更新”按钮,能够将数据库中一张表的信息显示到对话框1的列表控件中;对话框2的编辑框中添加相关信息后,可以保存到数据库中,并能够在对话框1的列表控件中显示出来~
再次感谢~
------解决方案--------------------
如果你的两个对话框是模态的问题很好解决:只要将dialog2中数据插入数据库中,dialog1的初始化对话框程序中的sql语句执行了就行了;
如果是非模态的比较难弄:加一个线程或是???
之前看到过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语句执行了就行了;
如果是非模态的比较难弄:加一个线程或是???