我用ADOquery,datasource,adoconnection連一個ACCESS數據庫,執行SELECT沒問題,但是insert into就出錯,但它有時雖然出錯,但是又可以把數據加在數據庫上...請問怎樣才可以正确地使INSERT into在EXE上執行?

解决方案 »

  1.   

    query.open;
    query.Insert;
    query.fieldByName(...).AsString:=...;
    ...
    query.post;
    ...
      

  2.   

    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.text := 'insert into tablename(field1.. ) values(:1,:2..)';
      parameters.parambyname('1').value := edit1.text;
      ..
      execsql;
    end;
      

  3.   

    最后加上  adoquery1.Execsql;
      

  4.   

    Insert操作是没有返回数据集的,所以你可以用adocommand控件,直接对adocommand的commandtext付值,然后调用excute方法就可以了。
      

  5.   

    with query1 do
      close;
      sql.add(insert into tablename values(字段));
      parambyname('字段')as..:=...
      

  6.   

    with query1 do
      close;
      sql.add(insert into tablename values(字段));
      parambyname('字段')asstring:=edit.text;
     exec.sql;
      

  7.   

    with  ADOQUERY1  do
    begin
        close;
        sql.clear;
        sql.add('insert  into  tablename(ziduan1,ziduan2,...) values(:1,:2,..)');
        parameters.parambyname('1').value:=yourvalue;
        parameters.parambyname('2').value:=yourvalue2;
        ;
        execsql;
      

  8.   

    同意 wyr521(论坛王子),你照他的做,绝对没问题
      

  9.   

    with  ADOQUERY1  do
    begin
        close;
        sql.clear;
        sql.add('insert  into  tablename(ziduan1,ziduan2,...) values(:1,:2,..)');
        parameters.parambyname('1').value:=yourvalue;
        parameters.parambyname('2').value:=yourvalue2;
        ;
        execsql;注意:一定要用execsql语句执行没有返回结果的sql语句!
    和普通查询是不一样的!