請幫忙看一下,爲什麽程序不能執行到這一步?Result:=false;function TfmAdd.QuerySubTypeToListBox:boolean;
var
cur_trade,pre_trade: string;
i:integer;
begin
cur_trade:='';
pre_trade:='';
while not adoqry_Sales.Eof do
begin
cur_trade:=LeftBStr(GetSeparateString(adoqry_Sales.FieldByName('txmsg').AsString, '|', 40, 6), 4);
if cur_trade<>'9972' then
begin
if (pre_trade='') then
begin
adoqry_SubType.Close;
adoqry_SubType.SQL.Clear;
adoqry_SubType.SQL.Add('SELECT DISTINCT BS_Buy, BS_Send FROM BS_TransTrade WHERE :P_Date BETWEEN BS_Start AND BS_End AND BS_Trade = :P_Trade AND BS_Type=:P_type AND :P_time BETWEEN BS_stime and BS_etime');
adoqry_SubType.Parameters.ParamByName('P_Date').DataType := ftDate;
adoqry_SubType.Parameters.ParamByName('P_Date').Value := Date;
adoqry_SubType.Parameters.ParamByName('P_Trade').Value :=cur_trade;
adoqry_SubType.Parameters.ParamByName('P_time').DataType:=ftInteger;
adoqry_SubType.Parameters.ParamByName('P_time').Value:=strtoint(adoqry_Sales.FieldValues['txtime']); if g_bMultiTrade then
begin
adoqry_SubType.Parameters.ParamByName('P_Type').Value :=1 ;
end else
begin
adoqry_SubType.Parameters.ParamByName('P_Type').Value := 0;
end; adoqry_SubType.Open;
setlength(cur_bs,adoqry_subtype.RecordCount);
i:=0;
while not adoqry_SubType.Eof do
begin
BSAdd(adoqry_SubType.FieldByName('BS_Buy').AsInteger, adoqry_SubType.FieldByName('BS_Send').AsInteger ,strtoint(cur_trade),cur_bs[i]);
adoqry_SubType.Next;
i:=i+1;
end;
pre_trade:=cur_trade;
end else
begin
if (pre_trade <> cur_trade) then
begin
Result:=false; //爲什麽程序不能執行到這一步? end;
end; end;
adoqry_Sales.Next;
end;
ScaleSorting(Cur_BS);
Result:=true;
end;
var
cur_trade,pre_trade: string;
i:integer;
begin
cur_trade:='';
pre_trade:='';
while not adoqry_Sales.Eof do
begin
cur_trade:=LeftBStr(GetSeparateString(adoqry_Sales.FieldByName('txmsg').AsString, '|', 40, 6), 4);
if cur_trade<>'9972' then
begin
if (pre_trade='') then
begin
adoqry_SubType.Close;
adoqry_SubType.SQL.Clear;
adoqry_SubType.SQL.Add('SELECT DISTINCT BS_Buy, BS_Send FROM BS_TransTrade WHERE :P_Date BETWEEN BS_Start AND BS_End AND BS_Trade = :P_Trade AND BS_Type=:P_type AND :P_time BETWEEN BS_stime and BS_etime');
adoqry_SubType.Parameters.ParamByName('P_Date').DataType := ftDate;
adoqry_SubType.Parameters.ParamByName('P_Date').Value := Date;
adoqry_SubType.Parameters.ParamByName('P_Trade').Value :=cur_trade;
adoqry_SubType.Parameters.ParamByName('P_time').DataType:=ftInteger;
adoqry_SubType.Parameters.ParamByName('P_time').Value:=strtoint(adoqry_Sales.FieldValues['txtime']); if g_bMultiTrade then
begin
adoqry_SubType.Parameters.ParamByName('P_Type').Value :=1 ;
end else
begin
adoqry_SubType.Parameters.ParamByName('P_Type').Value := 0;
end; adoqry_SubType.Open;
setlength(cur_bs,adoqry_subtype.RecordCount);
i:=0;
while not adoqry_SubType.Eof do
begin
BSAdd(adoqry_SubType.FieldByName('BS_Buy').AsInteger, adoqry_SubType.FieldByName('BS_Send').AsInteger ,strtoint(cur_trade),cur_bs[i]);
adoqry_SubType.Next;
i:=i+1;
end;
pre_trade:=cur_trade;
end else
begin
if (pre_trade <> cur_trade) then
begin
Result:=false; //爲什麽程序不能執行到這一步? end;
end; end;
adoqry_Sales.Next;
end;
ScaleSorting(Cur_BS);
Result:=true;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货