MFC操作MySql数据库是安插操作只能插入一次

MFC操作MySql数据库是插入操作只能插入一次
LRESULT CServerChatDlg::OnSocket(WPARAM wParam, LPARAM lParam)
{

int nError = WSAGETSELECTERROR(lParam); 
int nEvent = WSAGETSELECTEVENT(lParam);
SOCKET sock = wParam;
switch (nEvent) 
{
case FD_READ:
{
CString typeTest="";
char buffer[1024] = {0};
int nFactLen = recv(sock, buffer, 1024, 0); 
for (int i=0;i<4;i++) {     
typeTest+=buffer[i];   

if(typeTest=="0000")  //PM2.5测试
{
CString pmone = computeDisplay(5,10,buffer);
CString pmtwo = computeDisplay(11,16,buffer);
CString pmthree = computeDisplay(17,22,buffer);
CString pmfour = computeDisplay(23,28,buffer);
CString pmfive = computeDisplay(29,35,buffer);

GetDlgItem(IDC_PMOne)->SetWindowText(pmone);
GetDlgItem(IDC_PMTwo)->SetWindowText(pmtwo);
GetDlgItem(IDC_PMThree)->SetWindowText(pmthree);
GetDlgItem(IDC_PMFour)->SetWindowText(pmfour);
              GetDlgItem(IDC_PMFive)->SetWindowText(pmfive);


char *SQL = "";
sprintf(SQL,"insert into PM(PMone,PMtwo,PMthree,PMfour,PMfive) values('%s','%s','%s','%s','%s')",pmone,pmtwo,pmthree,pmfour,pmfive);
int flag = vspdctomysql->InsertData(SQL,Msg) ;


如果没有我蓝颜色标记的数据库操作,每次在触发SOCKET消息的时候,红颜色的语句会会执行,但如果我加上蓝颜色的数据库插入操作后,红颜色语句只执行一次,只能向数据库中插入一次,第二次触发SOCKET消息后红颜色的语句不执行。跪求各位大神帮忙解决啊!
}
mfc mysql socket

------解决方案--------------------
第二次是不是if(typeTest=="0000")条件不为真了?
------解决方案--------------------
你把sprintf实现的功能用CString来代替试试,或者你先把:
sprintf(SQL,"insert into PM(PMone,PMtwo,PMthree,PMfour,PMfive) values('%s','%s','%s','%s','%s')",pmone,pmtwo,pmthree,pmfour,pmfive);
 int flag = vspdctomysql->InsertData(SQL,Msg) ;
这两句去掉试试,如果没问题,就一句一句加试,看是哪条句造成的,也许是插入语句造成的,如果是这样,你就在其它地方插入,比如收到数据后做个标志,然后在其它地方判断这个标志进入插入,或收到数据后发送消息来执行插入