我需要将数据存入数据库,下面的程序,调试出错。//将单个实验结果存入数据库
void CResultData::SaveResult(SAVEMCU &aSaveMcu)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
...
CString strSQL;
strSQL.Format("INSERT INTO Result (Tid,Name,Field,PicNum,Time,EnK1,EnK2,EnK3,EnK4,ReK1,ReK2,ReK3,ReK4,ReTr,ReVd) VALUES(%d,\'%s\',\'%s\',%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)",nResult,strName,strField,nNumber,nTime,bKey1,bKey2,bKey3,bKey4,bRespondKey1,bRespondKey2,bRespondKey3,bRespondKey4,bTrue,bValid);
_bstr_t vSQL(strSQL.AllocSysString(),FALSE);
//执行INSERT语句
m_AdoConn.ExecuteSQL(vSQL);
//断开与数据库的连接
m_AdoConn.ExitConnect();}m_AdoConn是我自己编的一个函数,用于连接数据源和执行SQL语句。调试发现,strSQL和转换后的vSQL里的字符串不一样,分别为:
strSQL == {"INSERT INTO Result (Tid,Name,Field,PicNum,Time,EnK1,EnK2,EnK3,EnK4,ReK1,ReK2,ReK3,ReK4,ReTr,ReVd) VALUES(2,'陈劲','A',1,38550,1,0,0,0,0,1,1,0,0,1)"}
转换后,
vSQL == {"INSERT INTO Result (Tid,Name,Field,PicNum,Time,EnK1,EnK2,EnK3,EnK4,ReK1,ReK2,ReK3,ReK4,ReTr,ReVd) VALUES(2,'陈劲','A',1,38550,1," (1)}不知道问题出在哪里?我将字段名修改短了以后才出现这么多,如果字段名长的话,vSQL长度更加短。请问这个问题怎样解决呢?
还有,这样插入数据是否可行?有没有其他的方法可以插入数据?