strDeleteGoodsByGoodsNum = 'delete from Goods where G_inid=:INID and G_id in (select min(G_id) from Goods where G_inid=:INID group by G_inid)';AnAdoQuery.ConnectionString := ConnectionStr;
     AnAdoQuery.DisableControls;
     try
       AnAdoQuery.Close;
       AnAdoQuery.SQL.Clear;
       AnAdoQuery.SQL.Add(Trim(strDeleteGoodsByGoodsNum));
       AnAdoQuery.Parameters.ParamByName('INID').Value := GinID;
       //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^有问题^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
       for i:= 1 to j do
         AnAdoQuery.ExecSQL;
//………………………………………………………………//
       showmessage(IntToStr(j));        
     except
       Application.MessageBox('未知错误','错误',MB_OK);
     end;
AnAdoQuery.EnableControls;错误信息:
parameter对象被不正确的定义,提供了不一致或不完整的信息

解决方案 »

  1.   


           AnAdoQuery.Parameters.ParamByName('INID').Value := GinID;
    类型不配。。       AnAdoQuery.Parameters.ParamByName('INID').asguid := GinID;//好像是。。
      

  2.   

    strDeleteGoodsByGoodsNum = 'delete from Goods where G_inid='''+GinID+''' and G_id in (select min(G_id) from Goods where G_inid='''+GinID+''' group by G_inid)';AnAdoQuery.ConnectionString := ConnectionStr;
           try
           AnAdoQuery.Close;
           AnAdoQuery.SQL.Clear;
           AnAdoQuery.SQL.Add(Trim(strDeleteGoodsByGoodsNum));
           for i:= 1 to j do
             AnAdoQuery.ExecSQL;
           showmessage(IntToStr(j));        
         except
           Application.MessageBox('未知错误','错误',MB_OK);
         end;
      

  3.   

    我知道了,
    这样绝对没有问题。
    strDeleteGoodsByGoodsNum = 'delete from Goods where G_inid=:INID1 and G_id in (select min(G_id) from Goods where G_inid=:INID2 group by G_inid)';AnAdoQuery.Parameters.ParamByName('INID1').Value := GinID;
    AnAdoQuery.Parameters.ParamByName('INID2').Value := GinID;
    必须这样。(Delphi的问题)
      

  4.   

    AnAdoQuery.Parameters.ParamByName('INID').asinteger
    另外,tadoquery有一个设置参数的属性设为true,好像是"*param"
      

  5.   

    啊解决了,真是delphi的问题!!!
      

  6.   

    没有不对啊,SQL语句本身没有问题,问题就出在Delphi里,他只把第一个符合的参数给“替换”了。我说的那样作,绝对没有问题,不信马上试。