求教数据库添加有关问题,IDIspatch error #3092

求教数据库添加问题,IDIspatch error #3092
向数据库中添加数据的时候出现了这个提示,该怎么解决啊?看了论坛上的帖子,也不是很明白,请指教!
CDlgDataAdd dlg;
dlg.sheet="榫齿截面控制点位置";
if (dlg.DoModal()==IDCANCEL) return;
ADOConn ado;
int adosign=ado.OnInitADOConnect();
if (adosign==FALSE)
{
uc1601("连接数据库失败,请检查其运行状况",1);
return;
}
l_str[1].Format("%.4f",l1);
l_str[2].Format("%.4f",l2);
l_str[3].Format("%.4f",l3);
l_str[4].Format("%.4f",l4);
l_str[5].Format("%.4f",l5);
l_str[6].Format("%.4f",l6);
l_str[7].Format("%.4f",l7);
l_str[8].Format("%.4f",l8);
l_str[9].Format("%.4f",l9);
l_str[10].Format("%.4f",l10);
l_str[11].Format("%.4f",l11);
l_str[12].Format("%.4f",l12);
l_str[13].Format("%.4f",l13);
l_str[14].Format("%.4f",l14);
l_str[15].Format("%.4f",l15);


r_str[1].Format("%.4f",r1);
r_str[2].Format("%.4f",r2);
r_str[3].Format("%.4f",r3);
r_str[4].Format("%.4f",r4);
r_str[5].Format("%.4f",r5);
r_str[6].Format("%.4f",r6);
r_str[7].Format("%.4f",r7);
r_str[8].Format("%.4f",r8);
r_str[9].Format("%.4f",r9);
r_str[10].Format("%.4f",r10);
r_str[11].Format("%.4f",r11);
r_str[12].Format("%.4f",r12);

ag_str[0].Format("%.4f",ag1);
ag_str[1].Format("%.4f",ag2);


CString temp[2];
temp[0].Format("%d",dlg.add_item.jm_index);
temp[1].Format("%d",dlg.add_item.com_index);

 
  CString tempSQL="INSERT INTO 榫齿截面控制点位置(截面名称,厂家名称,厂家索引,截面索引,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,R1,R1,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,AG1,AG2) VALUES (";  
 
tempSQL=tempSQL+temp[0]+",'"+dlg.add_item.jm_str+"',"+temp[1]+",'"+dlg.add_item.comp_str+"'";
int i=0;
for (i=1;i<15;i++)
{
tempSQL=tempSQL+","+l_str[i];
}
for (i=1;i<13;i++)
{
tempSQL=tempSQL+","+r_str[i];
}
for (i=0;i<2;i++)
{
tempSQL=tempSQL+","+ag_str[i];
}
  _bstr_t vSQL=tempSQL;


int addsign=ado.ExecuteSQL(vSQL);//有问题

  if(addsign==1) uc1601("添加成功",1);
else uc1601("添加失败",1);
在设置断点调试的时候,在int addsign=ado.ExecuteSQL(vSQL);这句话的时候提示有问题!



------解决方案--------------------
是不是因为表名引起的问题?你可以试试把表名用括号括起来,如下所示:
CString tempSQL="INSERT INTO [榫齿截面控制点位置](截面名称,厂家名称,厂家索引,截面索引,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,R1,R1,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,AG1,AG2) VALUES (";

仅供参考
------解决方案--------------------
_bstr_t vSQL=(_bstr_t)tempSQL;试试
------解决方案--------------------
IDIspatch error #3092 错误 表示sql执行语句有语法错误
应该是少列值上少单引号 比如 tempSQL=tempSQL+temp[0]+",'"+
应该是 tempSQL="'"+tempSQL+temp[0]+"','"+

可以在执行语句之前把拼好的语句打印出来,比如
AfxMessageBox(vSQL),看看语句是否正确。