我在Access中用到以下sql语句是能通过的,但在SQL2000里就不能,应该怎么改?
还有其他一些不同的地方吗?  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('Delete * from StockPrint');
  ADOQuery1.ExecSQL;  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('Insert into StockPrint');
  ADOQuery1.SQL.Add('select * from Stock');
  ADOQuery1.SQL.Add('where '+tj);
  ADOQuery1.ExecSQL;

解决方案 »

  1.   

    ADOQuery1.SQL.Add('Insert into StockPrint(');
      ADOQuery1.SQL.Add('select * from Stock');
      ADOQuery1.SQL.Add('where '+tj+')');
      ADOQuery1.ExecSQL;
    这样可以不?
    或:
      ADOQuery1.SQL.Add('Insert into StockPrint (field1,filed2)values(');
      ADOQuery1.SQL.Add('select fieldX,FieldX from Stock');
      ADOQuery1.SQL.Add('where '+tj);
      ADOQuery1.ExecSQL;
      

  2.   

    ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('Delete * from StockPrint');/////Delete后不用跟*.
      ADOQuery1.ExecSQL;
      

  3.   

    ADOQuery1.SQL.Add('Insert into StockPrint (field1,filed2)values(');
      ADOQuery1.SQL.Add('select fieldX,FieldX from Stock');
      ADOQuery1.SQL.Add('where '+tj);
      ADOQuery1.ExecSQL;
      

  4.   


    1. DELETE FROM StockPrint2. INSERT INTO StockPrint select * from Stock where ...不知道怎么回事, 感觉没错. 是不是你的tj有错误?
      

  5.   

    我以前出现类似错误,我的意见如下:
      1,你哪个DELETE * FROM  好象不对吧,应该是DELETE FROM 吧。 
      2,这个插入如果语法是正确的,即,你写个同样的,在SQL查询器里如果好使的话,只能是你的ADO 版本的问题,下个补丁吧。我以前试过,可以解决这个问题。
      

  6.   

    同意!DELETE 语法有问题!也有可能是tj的变量有问题!
      

  7.   

    不错 duhailee(阿牛) 分析的极为入理。赞同
      

  8.   

    提供一点线索:
    在Access中只能执行一些简单的sql,而且函数也少。
      

  9.   

    'Delete * from StockPrint'应改为 'Delete from StockPrint'
      

  10.   

    ADOQuery1.SQL.Add('Delete * from StockPrint');
    这句话在SQLSERVER中绝对是错误的