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

vc6的同一工程的两个函数在读写cpstest.mdb的“Parts表”和“Standard表”,编译过,为何运行时只能读写一个?该如何处理

2012-02-28 
vc6的同一工程的两个函数在读写cpstest.mdb的“Parts表”和“Standard表”,编译过,为何运行时只能读写一个?voi

vc6的同一工程的两个函数在读写cpstest.mdb的“Parts表”和“Standard表”,编译过,为何运行时只能读写一个?
void   btl1strdb(CString   btlstr)
{


int     bhno=0,   bzno=0;

                CString   btlstr1,stemp,   jhstr,jmstr,jsstr,clstr,xhstr,bhstr,bzstr;
                LPCTSTR   sortstr1;

    btlstr1=btlstr;


    jhstr=btlstr1.Mid(btlstr1.Find( "件号 ")+5,btlstr1.Find( "件数 ")-btlstr1.Find( "件号 ")-5-1);
    jmstr=btlstr1.Mid(btlstr1.Find( "件名 ")+5,btlstr1.Find( "件号 ")-btlstr1.Find( "件名 ")-5-1);
    jsstr=btlstr1.Mid(btlstr1.Find( "件数 ")+5,btlstr1.Find( "材料 ")-btlstr1.Find( "件数 ")-5-1);
    clstr=btlstr1.Mid(btlstr1.Find( "材料 ")+5,btlstr1.Find( "重量 ")-btlstr1.Find( "材料 ")-5-1);
    xhstr=btlstr1.Mid(btlstr1.Find( "型号 ")+5,btlstr1.Find( "部号 ")-btlstr1.Find( "型号 ")-5-1);
    bhstr=btlstr1.Mid(btlstr1.Find( "部号 ")+5,btlstr1.Find( "件名 ")-btlstr1.Find( "部号 ")-5-1);
    //bzstr=btlstr1.Mid(btlstr1.Find( "部号 ")+5,btlstr1.Find( "件名 ")-btlstr1.Find( "部号 ")-5-1);

    LPCTSTR   jhstr1(jhstr);
    LPCTSTR   jmstr1(jmstr);
    LPCTSTR   jsstr1(jsstr);
    LPCTSTR   clstr1(clstr);
    LPCTSTR   xhstr1(xhstr);
    LPCTSTR   bhstr1(bhstr);
      if(jhstr.Right(1)== "H "   ||   jhstr.Right(1)== "h ")
      {
      //jhstr=jhstr.Left(jhstr.GetLength()-1);
                      LPCTSTR   sortstr1(jhstr.Left(jhstr.GetLength()-1));
      }


    CDaoDatabase   db;
    db.Open(_T( "e:\\flq\\cpstest.mdb "));

      CDaoRecordset   rs(&db);
    rs.Open(dbOpenDynaset,
                  _T( "Select   *   FROM   Parts   "));
int   nFieldCount   =   rs.GetFieldCount();
try
{
//while   (!rs.IsEOF())   {
COleVariant   var;
rs.AddNew();
for   (int   i=0;   i   <=   nFieldCount;   i++)
{
        switch(i)  
{
case   0:
var   =   rs.GetFieldValue(i);
rs.SetFieldValue(i,jsstr1);
break;
case   1:
var   =   rs.GetFieldValue(i);
rs.SetFieldValue(i,jhstr1);

break;
case   2:
var   =   rs.GetFieldValue(i);
rs.SetFieldValue(i,clstr1);
break;
case   3:
var   =   rs.GetFieldValue(i);
rs.SetFieldValue(i,bhstr1);
break;
case   4:
var   =   rs.GetFieldValue(i);
rs.SetFieldValue(i,xhstr1);
break;
case   5:
var   =   rs.GetFieldValue(i);
//rs.SetFieldValue(i,xhstr1);
break;
case   6:
var   =   rs.GetFieldValue(i);
rs.SetFieldValue(i,jmstr1);
break;
case   8:
var   =   rs.GetFieldValue(i);
rs.SetFieldValue(i,sortstr1);
break;

default:


break;
        }

}

    rs.Update();

rs.MoveNext();
}
//}
catch   (CDaoException*   e)
{

e-> Delete();
}


    rs.Close();
    db.Close();


}


[解决办法]
up
[解决办法]
var = rs2.GetFieldValue(i);
//rs.SetFieldValue(i, " ");
===================================
该字段是否允许 NULL ,若不允许,必须为其设置值.
[解决办法]
ado 的性能比 dao 好。

热点排行