With ADOQuery2 do
  begin
    Close;
    SQL.Clear;
    Str := 'Select cCusCode,cCusName,ccCCode,CCusHand'+
        ' From Customer  where (cCusCode like ''%'+Edit2.Text
         +'%'' or cCusName Like ''%'+Edit2.Text+'%'') and '+
         'CCCCode in ('+Str_SSS+') ORDER BY cCCCode,cCusCode';
    SQL.Text := Str;
    Open;
  end;
  在本地机可以正常使用,但在局域网内的其它机子上使用此查询时会出现在同样的查询有时能查到有时候查询不到数据。
 是不是网络问题,有没有什么解决方法?

解决方案 »

  1.   

      With ADOQuery2 do
      begin
        Close;
        SQL.Clear;
        Str := 'Select cCusCode,cCusName,ccCCode,CCusHand'+
            ' From Customer  where (cCusCode like ''%'+Edit2.Text
             +'%'' or cCusName Like ''%'+Edit2.Text+'%'') and '+
             'CCCCode in ('+Str_SSS+') ORDER BY cCCCode,cCusCode';
        SQL.Text := Str;
        Open;
        i := 0;
        FormMain_a.ListView1.Items.Clear;
        While NOT EOF DO
        begin
          FormMain_A.ListView1.Items.Add;
          Str1 := Fieldbyname('cCCCode').AsString;
          formMain_A.ListView1.Items.Item[i].Caption := Fieldbyname('cCusCode').AsString;
          FormMain_A.ListView1.Items.Item[i].SubItems.Insert(0,Fieldbyname('cCusName').AsString);
          I := I + 1;
          Next;
        end;
      end;整个程序就这些。
      

  2.   

    不要相信会丢失数据。除非有不能正常工作的中间设备干涉。最好还是认真检查一下相关的设置。比如说在查询分析器当中执行看看需要多少时间,返回的数据量大不大,如果需要的时间比较长,那么ADOConnection是否有配置足够的超时时间,如果返回的数据量大的话,在客户端是否有足够的内存供使用。再就是中间是否有其它如try ... except把错误屏蔽掉了。
      

  3.   

    你用查询分析器或SQLDebug把查看的结果自己看一下就可以了。