真夸张。
这样:
AdoSqlCommand.CommandText:=Format('Delete from AdoDetailInStock where OrderID= %d', [dmAL.AdoMasterInStock.fields(''OrderID'').value]);

解决方案 »

  1.   

    错了,应该这样:
    AdoSqlCommand.CommandText:=Format('Delete from AdoDetailInStock where OrderID= %d', [dmAL.AdoMasterInStock.fields('OrderID').value]); 
      

  2.   

    chechy(chechy),不行啊。编译错误是:
    Missing Operation or semicolon.
    undeclared identifiter: 'value'提示一下。谢
      

  3.   

    呵呵,错误蛮多,我没仔细看。
    AdoSqlCommand.CommandText:=Format('Delete from AdoDetailInStock where OrderID= %d', [dmAL.AdoMasterInStock.fieldByName('OrderID').AsInteger]); 
      

  4.   

    如果OrderID是SQLSERVER2000中的nchar类型,把上面的那段代码修改为:
    AdoSqlCommand.CommandText:=Format('Delete from AdoDetailInStock where OrderID= %d', [dmAL.AdoMasterInStock.fieldByName('OrderID').Asstring]); 后会出现运行错误:Format '%d' invalid or incompatible with argument.我是初学者。又笨!谢了.
      

  5.   

    AdoSqlCommand.CommandText:=Format('Delete from AdoDetailInStock where OrderID= ''%s''', [dmAL.AdoMasterInStock.fieldByName('OrderID').Asstring]); 
      

  6.   

    去看看Format函数的格式.%d代表的是数字,所以后面对应的应该是数字类型的.
    如果你要的是一个字符号串,那么应该改成%s
    AdoSqlCommand.CommandText:=Format('Delete from AdoDetailInStock where OrderID= %s', [dmAL.AdoMasterInStock.fieldByName('OrderID').Asstring]);