我要程序是要处理电费销账的
我连的数据库是sybase 12.0
采用的方式是CCOMAND 方式
CCommand<CAccessor<CydydflsmxbAccessor> > m_yDflsmxb;
class CydydflsmxbAccessor
{
public:
TCHAR m_yf[7];
TCHAR m_yhbh[11];
TCHAR m_yhmc[61];
         double m_bydl;
TCHAR m_djdm[8];
TCHAR m_djxmdm[3];
TCHAR m_czsxdm[3];
double m_byysdf;
double m_sbyqdf;
double m_sby;
double m_byqdf;
TCHAR m_dw[21];
TCHAR m_dzx[2];
double m_sbnqdf;
double m_slnqdf;
TCHAR m_djdm1[4];
DBTIMESTAMP m_wyjrq;BEGIN_COLUMN_MAP(CydydflsmxbAccessor)
COLUMN_ENTRY(1, m_yf)
COLUMN_ENTRY(2, m_yhbh)
COLUMN_ENTRY(3, m_yhmc)
COLUMN_ENTRY(4,m_bydl)
COLUMN_ENTRY(5, m_djdm)
COLUMN_ENTRY(6, m_djxmdm)
COLUMN_ENTRY(7, m_czsxdm)
COLUMN_ENTRY(8,m_byysdf)
COLUMN_ENTRY(9,m_sbyqdf)
COLUMN_ENTRY(10,m_sby)
COLUMN_ENTRY(11,m_byqdf)
COLUMN_ENTRY(12, m_dw)
COLUMN_ENTRY(13, m_dzx)
COLUMN_ENTRY(14,m_sbnqdf)
COLUMN_ENTRY(15,m_slnqdf)
COLUMN_ENTRY(16, m_djdm1)
COLUMN_ENTRY(17, m_wyjrq)
END_COLUMN_MAP()DEFINE_COMMAND(CydydflsmxbAccessor, _T(" \
SELECT \
yf, \
yhbh, \
yhmc, \
bydl, \
djdm, \
djxmdm, \
czsxdm, \
byysdf, \
sbyqdf, \
sby, \
byqdf, \
dw, \
dzx, \
sbnqdf, \
slnqdf, \
djdm1, \
wyjrq  \
FROM yd.y_dflsmxb")) // You may wish to call this function if you are 
            inserting a    record and wish to
// initialize all the fields, if you are 
            not going to explicitly set all of them.
void ClearRecord()
{
memset(this, 0, sizeof(*this));
}
};下面就是我要销账的程序, 因为有wyjrq这个日期时间型字段的存在,是销账出现问题,---当wyjrq不为空时,正确销账,但当wyjrq为空时,销账就不成功! 为什么会造成这种情况的发生?请指点迷津
BOOL CMessage::DoDflsmxb()

CString strSql,strData,strXzrq,strDjxmdm;
time=theApp.m_SysTime;
         strXzrq=time.Format("20%y%m%d%H%M%S");
HRESULT hr;
strDjxmdm="";
         strSql="SELECT * FROM yd.y_dflsmxb WHERE yhbh='"+yhh+"' 
            AND yf  = '"+fpyf+"'";
if(theApp.m_Message.m_Table1.m_yDflsmxb.
           Open (theApp.m_dbase.m_SessionSybase,                     strSql, &theApp.m_dbase.m_PropSetStsBase)!=S_OK)
{
theApp.UpdateAffair("修改不成功!");
    theApp.m_Message.m_Table1.Close(4);
    return false;
 
}
        else
{
  hr=theApp.m_Message.m_Table1.m_yDflsmxb.MoveFirst();
  if(hr==S_OK)
  {   
    while(hr==S_OK)
    { strczsxdm=theApp.m_Message.m_Table1.m_yDflsmxb.m_czsxdm;       strdjdm=theApp.m_Message.m_Table1.m_yDflsmxb.m_djdm;       strdjdm1=theApp.m_Message.m_Table1.m_yDflsmxb.m_djdm1;       theApp.m_Message.m_Table1.m_yDflsmxb.m_sbyqdf
                =theApp.m_Message.m_Table1.m_yDflsmxb.m_byysdf;       theApp.m_Message.m_Table1.m_yDflsmxb.m_byqdf=0;
      theApp.m_Message.m_Table1.m_yDflsmxb.SetData();
      theApp.m_Message.m_Table1.m_yDflsmxb.Update();          hr=theApp.m_Message.m_Table1.m_yDflsmxb.MoveNext();
    }
                
  }
    theApp.m_Message.m_Table1.Close(4);
return true;
}
}