高手请进:关于TADOQuery 和 TDBGrid的动态使用问题
在一个函数内实现的代码如下:
void GtData(AnsiString myid)
{
TADOQuery *Tsql=new TADOQuery(NULL);
TDataSours *ds=new TDataSours(NULL);
Tsql-> close();
Tsql-> sql-> clear();
Tsql-> sql-> add( "select * from tab where id= ' "+myid+ " ' ");
Tsql-> open();
ds-> datasours=Tsql;
TDBGrid1-> datasours=ds;
///以下是重点。。。
delete Tsql;
delete ds;
Tsql=NULL;
ds=NULL;
}
如果在该函数内执行delete那么在TDBGrid中的数据就不被保留!!
如何保留TDBGrid中的数据,还要执行delete
如果不执行delete ,那么每调用GtData(AnsiString myid)一下内存就会不停的增加一点。。。
如何处理??????
[解决办法]
头文件中
private:
TADOQuery *Tsql;
TDataSours *ds;
void GtData(AnsiString myid)
{
if(Tsql)delete Tsql;
if(ds)delete ds;
Tsql=NULL;
ds=NULL;
Tsql=new TADOQuery(this);
ds=new TDataSours(this);
Tsql-> close();
Tsql-> sql-> clear();
Tsql-> sql-> add( "select * from tab where id= ' "+myid+ " ' ");
Tsql-> open();
ds-> datasours=Tsql;
TDBGrid1-> datasours=ds;
}