请达人看看这段更新代码有什么错?我用delphi的sqlexplore都不行。。。
这段代码使用ado连接ACCESS的,然而在后面更新记录的时候一直更新不进去。。。
sdasc是表名,asc,project,datea,dateb,tester,id是列名,我用的是access数据库,开始还能更新,后来就一次也更新不了。
CString m_strUpdate;
m_strUpdate.Format("update sss set asc='2',project='1',utility='2007-8-9',datea='2007-8-9',dateb='2008-8-9',tester='a' where id=1");
这是源码:
void CSdManagerView::OnUpdate()
{
m_wndGrid.SetCol(0);
m_wndGrid.SetRow(m_nIndex);
CString str1 = m_wndGrid.GetText();
CString m_strUp;
m_strUp.Format("select * from sd_asc where ID=%s",str1);
CAdoRecordSet rset;
rset.SetAdoConnection(&(GetDocument()->m_adoConnection));
rset.Open(m_strUp);
int ncol = rset.GetFields()->Count;
CString upData[10];
for (int i = 0; i < ncol; i++)
{
rset.GetValueString(upData[i], (long)(i));
}
//rset.Close();
globalUpdate.m_strID = upData[0];
globalUpdate.m_strASC = upData[1];
globalUpdate.m_strProject = upData[2];
globalUpdate.m_strUtility = upData[3];
globalUpdate.m_strDateStart = upData[4];
globalUpdate.m_strDateEnd = upData[5];
globalUpdate.m_strTester = upData[6];
globalUpdate.m_strTest = upData[7];
globalUpdate.m_strIssue = upData[8];
CString m_strUpdate;
CUpdateDlg dlg;
if (dlg.DoModal() == IDOK)
{
SdUser.m_strID = dlg.m_strID;
SdUser.m_strASC = dlg.m_strAscUp;
SdUser.m_strProject = dlg.m_strProjectUp;
SdUser.m_strUtility = dlg.m_strUtiUp;
SdUser.m_strTester = dlg.m_strTesterUp;
SdUser.m_strTest = dlg.m_strTestUp;
SdUser.m_strIssue = dlg.m_strIssueUp;
SdUser.m_strDateStart = dlg.m_strStartUp;
SdUser.m_strDateEnd = dlg.m_strEndUp;
m_strUpdate = SdUser.m_strID;
long m_nID = atoi(m_strUpdate.GetBuffer(10));
m_strUpdate.Format("update sd_asc set Asc='%s',Project='%s',Utility='%s',Date_Start='%s',Date_End='%s',Tester1='%s',Test_Report='%s',IssueReport='%s', where ID=%d",SdUser.m_strASC, SdUser.m_strProject,SdUser.m_strUtility,SdUser.m_strDateStart,SdUser.m_strDateEnd,SdUser.m_strTester,SdUser.m_strTest,SdUser.m_strIssue,m_nID);
}
CAdoRecordSet rset1;
rset1.SetAdoConnection(&(GetDocument()->m_adoConnection));
rset1.Open(m_strUpdate);
}