如题:根据得到的SQL语句,比如有10条, 循环执行。 CString sql;
CStringArray arr; //SQL集合
///////////////////////////////////
//传递参数的结构体
typedef struct
{
CWnd *pWnd;
CString sql;
};
//////////////////////////////
for(int i=0;i<arr.GetSize();i++)
{ str=arr.GetAt(i);
TP tpa;
tpa.pWnd=this;
tpa.sql=sql;
HANDLE hThread=CreateThread(NULL,0,RunSQLProc,&tpa,0,NULL);
}
DWORD WINAPI RunSQLProc(LPVOID lpParameter)
{ TP *lpTP=(TP*)lpParameter;
pDlg=(CTestDlg*)(lpTP->pWnd);
CString sa=lpTP->sql;
AfxMessageBox(sa);
//////////////////////////////
。
--执行得到的SQL语句
} 问题 :程序执行后得到的 弹出对话框命令全部是最后一条,请问为什么?
如何修改? 谢谢
CStringArray arr; //SQL集合
///////////////////////////////////
//传递参数的结构体
typedef struct
{
CWnd *pWnd;
CString sql;
};
//////////////////////////////
for(int i=0;i<arr.GetSize();i++)
{ str=arr.GetAt(i);
TP tpa;
tpa.pWnd=this;
tpa.sql=sql;
HANDLE hThread=CreateThread(NULL,0,RunSQLProc,&tpa,0,NULL);
}
DWORD WINAPI RunSQLProc(LPVOID lpParameter)
{ TP *lpTP=(TP*)lpParameter;
pDlg=(CTestDlg*)(lpTP->pWnd);
CString sa=lpTP->sql;
AfxMessageBox(sa);
//////////////////////////////
。
--执行得到的SQL语句
} 问题 :程序执行后得到的 弹出对话框命令全部是最后一条,请问为什么?
如何修改? 谢谢
str=arr.GetAt(i);
TP tpa;
tpa.pWnd=this;
tpa.sql=str;//
然后在线程执行函数中跟踪看lpTP->sql 是否都是一样的
使用TRACE宏跟踪