void CProviderDlg::OnProviderAdd() 
{
// TODO: Add your control notification handler code here
CProvideraddDlg dlg;
if(dlg.DoModal()!= IDC_PRO_ADD_QUERY)//不是单击了确认按钮
{
return;
}

CString strSQL;
//strSQL="select * from ProviderInfo  where ProviderID=10001";//若赋值为次 句         子则执行正常,若赋值危险面的句子就报错:Insert附近有语法错误,未能准备语句 strSQL.Format("insert into ProviderInfo values('%d','%s', '%s', '%s', '%s', '%s', '%s', '%s') " , str,dlg.m_pname,  \
dlg.m_laddress, dlg.m_tel, dlg.m_email, dlg.m_website, dlg.m_lperson, dlg.m_res);//构建插入sql语句
这里跟踪调试的strSQL为:{insert into ProviderInfo values(10006,'','','','','','','')}
                //语句应该是正确的, CPROVIDERSET m_ProviderSet;//构建CRecordSet派生类对象
m_ProviderSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);//执行sql语句         //网上搜了说这里要用CDatabase::ExecuteSQL();但是试了还是出错。
        //theApp.GetDatabase().ExecuteSQL(strSQL); ShowInfo(strSQL);//显示结果
}
另外,即使将语strSQL直接赋值为insert语句都报错,这个insert语句在sql2000中运行正确。