用VC++6.0用ODBC怎么执行一条SQL语句呀
我用Crecordset基类弄了一个m_LoginSet,目的是完成数据修改,结果却程序停止运行(只要涉及到m_LoginSet->~~~~)

UpdateData(TRUE); //读入输入的资料
if(m_ChangeName.IsEmpty()||m_ChangePwd.IsEmpty())
{
AfxMessageBox("请输入相应的数据!");
return;
}
    
m_LoginSet->MoveFirst();

while(!m_LoginSet->IsEOF())
{
if(m_ChangeName != m_LoginSet->m_username)
{
m_LoginSet->MoveNext();
}
else
{
m_LoginSet->Edit();
m_LoginSet->m_username = m_ChangeName;
m_LoginSet->m_pwd = m_ChangePwd;
m_LoginSet->Update(); 
m_LoginSet->Requery();
// m_List.DeleteAllItems();
// DisplayRecord(); 8
return;
}
}

解决方案 »

  1.   

    m_LoginSet获取了数据集么,怎么没看见你的SQL语句啊,另外,你可以跟踪下看看或者贴出所有代码
      

  2.   

    CDatabase::ExecuteSQL(LPCSTR lpszSQL );
    CRecordset::Open(UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, DWORD dwOptions = none );这两个就够了吧。
      

  3.   

    按标准框架来操作try
    {
      //open database
      ……
      ASSERT(m_DBSet && m_DBSet->IsOpen());
      if(m_DBSet && m_DBSet->IsOpen())
      {
        ……
      }  //close database
      ……
    }
    catch(CDBException *e)
    {
      e->ReportError();
      e->Delete();
    }