单步执行到
   query1.sql.add('insert into sms .........);
   query1.execsql;后,
   马上打开access数据库,发现数据还没有被加入,是缓存的事,还是要再执行什么语句呢?

解决方案 »

  1.   

    试一下下面的
    with datafrom.ADOQuery1 do
        begin
          close;
          sql.clear;
          sql.Add('select * from 入库表');
          prepared;
          open;
          append;
          order:=order+1;
          fieldbyname('拼音').asstring:=trim(edit1.text);
          fieldbyname('货号').asstring:=trim(edit2.text);
          fieldbyname('品名').AsString:=trim(edit3.text);
          fieldbyname('规格').asstring:=trim(edit4.text);
          fieldbyname('单位').asstring:=trim(edit5.text);
          fieldbyname('产地').asstring:=trim(edit6.text);
          fieldbyname('类别').asstring:=trim(edit7.text);
          fieldbyname('价格').asstring:=trim(edit8.text);
          fieldbyname('数量').asstring:=trim(edit9.text);
          fieldbyname('加入顺序').asstring:=inttostr(order);
          fieldbyname('入库日期').asstring:=datetostr(form4.DateTimePicker1.date);
          fieldbyname('入库单据号').asstring:=trim(form4.ComboBox1.Text);
          post;
    end;
      

  2.   

    我給字段賦值了.insert和execsql都正常执行,只有结束正在调试的应用程序,再打开access,数据才显示 的。
      

  3.   

    OH , My dear, you can call query.close to save it.:)
    And check you ADO cursor type, maybe you can work it soon.
      

  4.   

    close;
    open;
    or refresh!