关于“Grid index out of range”的问题
我的程序
1)所用控件
TDBGrid *DBGrid1;
TDBNavigator *DBNavigator1;
TDataSource *DSSQL;
TQuery* Query1;
2)控年设置
DSSQL->DataSet = Query1;
DBNavigator1->DataSource = DSSQL;
DBGrid1->DataSource = DSSQL;
3)出错的情况
3-1) 第一次执行
{
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select * from aa where qs<"04018");
Query1->Open():
}
然后点击DBNavigator1控件的“Last”按钮,程序正常
3-2)第二次执行
{
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select * from aa where qs<"04016");
Query1->Open():
}
然后点击DBNavigator1控件的“Last”按钮,程序报“Grid index out of range”错. 点警告框的“确定”按钮后,进入C++Builder的调试状态,不作任何变动,直接
“RUN”按钮,回到程序运行状态,再按DBNavigator1控件的“Last”按钮,程序又正常。
以后每再次重新用SQL查询后,想到数据集的最后一条记录(用语句Query1->Last();也一样),非要出次错,才会正常,不知是何道理,不知有何对策,我估计是DBGrid1的设置有误,但不知具体原因。
请赐教,
为感!!