MFC程序写入SQLsever 数据库越来越慢怎么办?

作者&投稿:阎乐 (若有异议请与网页底部的电邮联系)
MFC连接SQL server数据库速度问题~

先使用ADO测试一下……

在MFC中与SQL数据库相关联的主要是两个类:CDatabase类与CRecordeset类。
1.将SQL中的字段显示在Clistctrl空间的列名中
[cpp] view plain copym_gl.Open(CRecordset::dynaset);//打开ODBC连接的数据库 short nfilecount=m_gl.GetODBCFieldCount();//获取表中的字段数 CODBCFieldInfo fieldinfo;//用于存储字段信息 for(int n=0;n<nfilecount;n++) { m_gl.GetODBCFieldInfo(n,fieldinfo);//返回某一字段索引的字段信息 m_strName保存的是字段名 int nWidth=m_list.GetStringWidth(fieldinfo.m_strName)+15;//确定列头的显示长度 m_list.InsertColumn(n,fieldinfo.m_strName,LVCFMT_LEFT,nWidth);//在Clistctrl控件中插入列 } CString strvalue; m_gl.MoveFirst(); int ncount=0; while(!m_gl.IsEOF()) { m_list.InsertItem(ncount,strvalue); //for(short j=0;j<nfilecount;j++) //{ // m_gl.GetFieldValue(j,strvalue);//获取某个字段的信息 // m_list.SetItemText(ncount,j,strvalue);//在Clistctrl控件中写入数据 //} CString m_ID; m_ID.Format("%d",m_gl.m_ID); m_list.SetItemText(ncount,0,m_ID); m_list.SetItemText(ncount,1,m_gl.column1); m_list.SetItemText(ncount,2,m_gl.column2); m_list.SetItemText(ncount,3,m_gl.column3); m_list.SetItemText(ncount,4,m_gl.column4); m_list.SetItemText(ncount,5,m_gl.column4); m_gl.MoveNext(); ncount++; } m_gl.Close(); m_db.Close();2.删除表中的某一行:
[cpp] view plain copyint nIdxingdb=nIdx1+1; m_gl.Open (CRecordset::dynaset);//打开数据库 m_gl.SetAbsolutePosition(nIdxingdb);//设置数据库的记录位置 m_gl.Delete();//删除记录 m_gl.Close();3.增加到记录中一行:
[cpp] view plain copym_gl.AddNew(); m_gl.SetFieldNull(NULL,false); m_gl.column1 = r.Name; m_gl.column5 = r.Photo; m_gl.column2 = r.Depart; m_gl.column3 =r.IsIntern; m_gl.column4=r.Phone; m_gl.Update(); m_gl.Requery(); m_gl.MoveFirst();

对话框1的按钮单击事件里如下写CDialogdlg2;dlg2.doModal();//写你读取,显示的函数对话框2里的单击事件CStringsql="";sql.format("insertintoxxxvalues('%s')",xxxx);//执行sql其中xxx是表名,xxxx是你要添加的那些文本框的内容,自己看好了就行了