小弟用DELPHI5.0开发的程序中,运行以后,小弟想把TADOQuery的控件名称,换成XX,XX是TQuery类型
,编译没问题,可是运行到如下代码时报错!提示什么指针有问题!
ADOQuery.Name := 'xx';
BDEQuery.Name := 'yy';
with XX do
begin
  Close;
  SQL.Text := 'SELECT * FROM CUSTOMER'; //这句报错!
  Open;
end;是这种用法不对还是, 小弟写法有问题,请大侠们指点迷津!

解决方案 »

  1.   

    XX是空的,要赋值。
    XX:=AdoQuery;
      

  2.   

    像你这样应该是编译不能通过的,你还是在编译前就将Name改好吧
      

  3.   

    错误信息为Project Manger.exe raised exception class EAccessViolation with Message '存取出错在0046D5A8处';模块'Manger.exe'.Read的FFFFFFFF处!不好意思,小弟可能没有说清楚!
    在设计态,有一个TADOQuery控件叫DataQuery, 有一个TQuery控件叫QueryBDE,在运行态,小弟想把QueryBDE的名称改成DataQuery,把DataQuery的名称改成DataQueryADO,这样在代码中就不用分情况写代码了!
      

  4.   

    很不幸,楼主的目的无法实现。“控件名称”只是在编译时才有用,运行时全是指针,名字并没有多大意义。
    TADOQuery 和 TQuery的公共父类是TDataSet,可以都转成TDataSet,但TDataSet没有SQL属性!