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