循环执行SQL语句,居然不是很稳定,好烦啊,弄了两天了
先声明 ,以下SQL语句 完全正确,并且没有和任何全局控件进行关联,而且在单步调试执行状态时是正常的
而且ADOQuery连接数据库是正常的,给我的感觉 是太快了,就不正常,我Sleep(1000)正确率就大大提高 ,但这不合常理啊
是不是ADOQuery还有什么属性要设置呢?有哪个知道啊
//以下用到的变量都是局部定义 的,没有任何问题
for ( i = 0; i < sListBh->Count; i++)
{
bz = sListBh->Names[i];
nZBH = atoi(sListBh->Values[bz].c_str());
zbh = ListZBBH->Values[bz];
sql = "Insert into [工程取费] (原编号,上级编号,排序,主表,顺号,输出,项目,公式,基础,标志,专业取费) select 编号,上级编号,排序," + zbh +
",顺号,输出,项目,公式,基础,标志,'" + sTypeName + "' from [;DATABASE="+DePath+"].[工程取费] where 表项=" + IntToStr(nZBH);
aQ->ExecSQL();
}
void __fastcall CrnSleep(UINT nDelay)
{
DWORD dw = ::GetTickCount();
while (::GetTickCount() - dw < nDelay)
Application->ProcessMessages();
}
for ( i = 0; i < sListBh->Count; i++)
{
...
aQ->ExecSQL();
CrnSleep(10);
}