我知道你的问题,给分
第一无效寻址,实例本身不存在,
你在上个帖子中我已经给指出你的问题了,你使用的TADOQuery适是一个类而不是一个实例,你可以这么写:
var
 q:TADOQuery;   
begin
 q:=TADOQuery.Create(nil);
 q.SQL.add('...')
 q.ExecuteSQL;
 Q.Free;     
end;
q是类的实例,而你使用TADOQuery是类,有点类似于变量和类型的关系,但是不出全是哦
锈有铁生而伤铁,最能帮助你的人和最能伤害你的人都是你自己  
  从水源逃跑
 皈依耶稣基督中。。
  耶稣基督教导我们说:要有崇高的牺牲精神
                      要有伟大的宽恕精神
                      要有平等的博爱精神
     神爱世人

解决方案 »

  1.   

    可惜啊,我怎么会create都不做就add里!
    而且我告诉你,这个子程序在其它地方能用,我直接拷贝过来就改了add中的SQL语句内容,就连ADD都不运行了
    还有程序直接运行.exe就可以,没有问题!我再加100分送var
            RS_Contract: TADOQuery;
            fContractNumSum,fContractAmountSum,fContractDisAmountSum:Currency;
    begin
            fContractNumSum:=0.00;
            fContractAmountSum:=0.00;
            fContractDisAmountSum:=0.00;        if (Length(Param_ContractID)>0) then
            begin
                RS_Contract:= TADOQuery.Create(fContract_Add);
                RS_Contract.Connection:=DataModuleConnection.DataConnection;
                RS_Contract.Close;
                RS_Contract.SQL.Clear;
                RS_Contract.SQL.Add('select sum(Num) as NumSum,Sum(Num*Price) as Amount');
                RS_Contract.SQL.Add(' from sale_OrderMain LEFT JOIN sale_OrderList ON sale_OrderMain.OrderID = sale_OrderList.OrderID');
                RS_Contract.SQL.Add(' where ContractID="'+Param_ContractID+'"');
                RS_Contract.Open;
      

  2.   

    我很遗憾的告诉你,你碰到了一个Delphi的Bug是调试器的Bug,我曾经遇到过编译器的Bug,但是我到现在还是我无法重现那次的烦恼,那次是这样的我在一条语句后面写了句注释,马上编译器就不通过了!烦!