close;
    SQL.Clear;
    Open;
    Append;
    SQL.Add('insert into Library values('+QuotedStr(Trim(LblEditNo.Text))+','+
      QuotedStr(Trim(LblEditName.Text))+','+
      QuotedStr(Trim(LblEditInventory.Text))+','+
      QuotedStr(Trim(LblEditPurchasePrice.Text))+','+
      QuotedStr(Trim(LblEditPrice.Text))+','+
      QuotedStr(Trim(cmbBoxUnit.Text))+','+
      QuotedStr(Trim(cmbBoxManufacturers.Text))+')');
    ExecSQL;
    Post;
这段代码是不是还缺少什么语句?
为什么会出错?
ADOQuery1:Missing SQL property
请高手指教

解决方案 »

  1.   

    你看你写的,append了,还用insert的sql语句
    用insert就必须requery数据集,你用
    adoquery.append;
    adoquery.fieldbyname('num').asstring := 'aaa';
    adoquery.post;
      

  2.   

    初学者,不太懂啊,我用的是ADOQuery数据集啊
    链接的是SQL Sever 数据库 不是Access
      

  3.   

        close;
        SQL.Clear;
        Open;
        Append;   
        FieldByName('商品编号').AsString:=QuotedStr(Trim(LblEditNo.Text));
        FieldByName('商品名称').AsString:=QuotedStr(Trim(LblEditName.Text));
        FieldByName('库存量').AsString:=QuotedStr(Trim(LblEditInventory.Text));
        FieldByName('进价').AsString:=QuotedStr(Trim(LblEditPurchasePrice.Text));
        FieldByName('售价').AsString:=QuotedStr(Trim(LblEditPrice.Text));
        FieldByName('商品单位').AsString:=QuotedStr(Trim(cmbBoxUnit.Text));
        FieldByName('生产厂家').AsString:=QuotedStr(Trim(cmbBoxManufacturers.Text));
        Post;
    这样还是不行啊,还是出现同样的错误啊?
      

  4.   

      close;
      SQL.Clear;
      Open;
      你SQL语句都清掉了,还能Open成功的?    FieldByName('商品编号').AsString:=Trim(LblEditNo.Text);
      这里就没必要再加引号了
      

  5.   

    按9楼的改也没用
      with ADOQuery1 do
      begin
        Open;
        Append;
        SQL.Add('insert into Library values('+QuotedStr(Trim(LblEditNo.Text))+','+
          QuotedStr(Trim(LblEditName.Text))+','+
          QuotedStr(Trim(LblEditInventory.Text))+','+
          QuotedStr(Trim(LblEditPurchasePrice.Text))+','+
          QuotedStr(Trim(LblEditPrice.Text))+','+
          QuotedStr(Trim(cmbBoxUnit.Text))+','+
          QuotedStr(Trim(cmbBoxManufacturers.Text))+')');
        Refresh;
        Post;
        showmessage('添加成功!');
      end;
    这样怎么还有错误啊?
      

  6.   

      close;
      SQL.Clear;
      //Open;
      //Append;
      SQL.Add('insert into Library values('+QuotedStr(Trim(LblEditNo.Text))+','+
      QuotedStr(Trim(LblEditName.Text))+','+
      QuotedStr(Trim(LblEditInventory.Text))+','+
      QuotedStr(Trim(LblEditPurchasePrice.Text))+','+
      QuotedStr(Trim(LblEditPrice.Text))+','+
      QuotedStr(Trim(cmbBoxUnit.Text))+','+
      QuotedStr(Trim(cmbBoxManufacturers.Text))+')');
      ExecSQL;
      //Post;......
    ADOQuery1.Close;
    ADOQuery1.Open;这样试试
      

  7.   

    注意顺序
    close;
    SQL.clear;
    SQL.Add(Str);
    ExecSQL;
      

  8.   

    为什么要close。又要clear。直接在open下。append就行了啊。
      

  9.   

    11楼的可行但是在前面加上一段代码
        close;
        SQL.Clear;
        SQL.Add('select 商品名称 from Library where 商品名称=:name');
        Parameters.ParamByName('name').Value:=Trim(LblEditName.Text);
        Prepared;
        open;
        if Recordcount>=1 then
        begin
          showmessage('已有该产品,可单击修改按钮修改数据');
          LblEditName.Clear;
          LblEditName.SetFocus;
          exit;
        end;
        SQL.Add('insert into Library values('+QuotedStr(Trim(LblEditNo.Text))+','+
          QuotedStr(Trim(LblEditName.Text))+','+
          QuotedStr(Trim(LblEditInventory.Text))+','+
          QuotedStr(Trim(LblEditPurchasePrice.Text))+','+
          QuotedStr(Trim(LblEditPrice.Text))+','+
          QuotedStr(Trim(cmbBoxUnit.Text))+','+
          QuotedStr(Trim(cmbBoxManufacturers.Text))+')');
        ExecSQL;
        Open;
        Close;
    就DbGrid中就没有数据显示了
      

  10.   

    你为什么不用AdoCommand插入?
    你给ADOQUERY1赋值了插入语句,用Execsql执行了插入命令,
    你又OPEN!根本没有select语句你怎么OPEN?
    AdoCommand.CommandText:='Insert或Update语句';
    AdoCommand.Execute;
    Adoquery1.close;
    AdoQuery1.Sql.Clear;
    ADoQuery1.Sql.Add('Select 语句');
    AdoQuery1.Open;