我在一个对话框类CBindDlgDlg中设置一个成员变量m_pRs是_RecordsetPtr类型的,在插入操作如下:
void CBindDlgDlg::OnAdd()
{
// TODO: Add your control notification handler code here
long arr[1];
VARIANT rgf;
VARIANT rgv;
COleVariant fld[3],val[9];
SAFEARRAYBOUND bound; try
{
UpdateData(TRUE);
fld[0] = "EmployeeID";
val[0] = m_lDlgID;
fld[1] = "LastName";
val[1] = m_strDlgName;
fld[2] = "Address";
val[2] = m_strDlgAddress;
fld[3] = "FirstName";
rgf.vt = VT_ARRAY|VT_VARIANT;
rgv.vt = VT_ARRAY|VT_VARIANT; bound.cElements = 3;
bound.lLbound = 0; rgv.parray = ::SafeArrayCreate(VT_VARIANT,1,&bound);
if(rgv.parray == NULL)
AfxThrowMemoryException(); rgf.parray = ::SafeArrayCreate(VT_VARIANT,1,&bound);
if(rgf.parray == NULL)
AfxThrowMemoryException(); for( int i = 0 ;i < 3;i++)
{
arr[0] = i;
::SafeArrayPutElement(rgf.parray,arr,&fld[i]);
::SafeArrayPutElement(rgv.parray,arr,&val[i]);
} m_pRs->AddNew(rgf,rgv); ////////////////////////////这里问题???
}
catch(_com_error &e)
{
GenerateError(e.Error(),e.Description());
}
}如果输入正确的值(各个编辑框都输入的相应的值),则可以插入数据;但如果输入错误的话(有一个或几个编辑框中没有添数据):如姓名编辑框中什么都不输入,就会出现异常说姓名字段值不能为空。问题是在出现一次插入异常后,即使以后的输入正确(使各个编辑框中的内容都不为空)仍然产生与上次的相同的异常,即还是告诉姓名字段值为空不能插入,可是我已经在编辑框中输入值了,为什么???说明一下:表中的各个字段均不能为空请各位高手指点到底是哪里的问题?
void CBindDlgDlg::OnAdd()
{
// TODO: Add your control notification handler code here
long arr[1];
VARIANT rgf;
VARIANT rgv;
COleVariant fld[3],val[9];
SAFEARRAYBOUND bound; try
{
UpdateData(TRUE);
fld[0] = "EmployeeID";
val[0] = m_lDlgID;
fld[1] = "LastName";
val[1] = m_strDlgName;
fld[2] = "Address";
val[2] = m_strDlgAddress;
fld[3] = "FirstName";
rgf.vt = VT_ARRAY|VT_VARIANT;
rgv.vt = VT_ARRAY|VT_VARIANT; bound.cElements = 3;
bound.lLbound = 0; rgv.parray = ::SafeArrayCreate(VT_VARIANT,1,&bound);
if(rgv.parray == NULL)
AfxThrowMemoryException(); rgf.parray = ::SafeArrayCreate(VT_VARIANT,1,&bound);
if(rgf.parray == NULL)
AfxThrowMemoryException(); for( int i = 0 ;i < 3;i++)
{
arr[0] = i;
::SafeArrayPutElement(rgf.parray,arr,&fld[i]);
::SafeArrayPutElement(rgv.parray,arr,&val[i]);
} m_pRs->AddNew(rgf,rgv); ////////////////////////////这里问题???
}
catch(_com_error &e)
{
GenerateError(e.Error(),e.Description());
}
}如果输入正确的值(各个编辑框都输入的相应的值),则可以插入数据;但如果输入错误的话(有一个或几个编辑框中没有添数据):如姓名编辑框中什么都不输入,就会出现异常说姓名字段值不能为空。问题是在出现一次插入异常后,即使以后的输入正确(使各个编辑框中的内容都不为空)仍然产生与上次的相同的异常,即还是告诉姓名字段值为空不能插入,可是我已经在编辑框中输入值了,为什么???说明一下:表中的各个字段均不能为空请各位高手指点到底是哪里的问题?
m_pRs->Open((LPCTSTR)m_strCmdText,(LPCTSTR)m_strConnection,adOpenDynamic,adLockOptimistic,adCmdTableDirect);其中m_strCmdText为表名 Employees
我真不知到怎么回事,请楼上在帮忙解释一下好吗?