query1.close;
        query1.sql.clear;
        query1.sql.add('insert into gsxx(gsdm,gsxm) values(90) select dm,xm from table2');
        query1.open;

解决方案 »

  1.   

    我知道,但拒绝回答!!痛恨csdn中
    http://www.csdn.net/expert/topic/794/794951.xml?temp=1.435488E-02
      

  2.   

    query1.open;该为:
    query1.execsql;
      

  3.   

    to  DeathCat(从死亡边缘站起来的患了狂猫病的猫) 
      大哥呀,为什么这么痛恨csdn呢,帮帮小弟吧!
      

  4.   

    to  netlib(河外孤星) 
      请教大哥,具体是什么意思呢
      

  5.   

    to  netlib(河外孤星) 
      请教大哥,具体是什么意思呢dm,xm是两个变量
      

  6.   

    不能使用open ,在del,insert时要使用execsql
      

  7.   

    使用Query1.ExecSQL;
    对于Query的查询SQL语句的执行有2种方式,1. Open(或者 Active= true) 这类使用在需要返回结果集的情况下,比如select;2.execsql, 用于不返回结果集的 比如insert, create table, delete, update, 明白了吗?另外 类似select * into newtable from table
    也是不返回结果集的,因为实际上是一个insert操作。
      

  8.   

    那这样写:
    query1.close;
    query1.sql.clear;
    query1.sql.add('insert into gsxx(gsdm,gsxm) values(:dm,:xm)');
    query1.params.parambyname('dm').asxxx:=xxx;
    query1.params.parambyname('xm').asxxx:=xxx;
    query1.execsql;
      

  9.   

    同意楼上的,在你的QUERY或STOREDPROC没有返回结果集时,只能使用
    EXECPROC或者EXECSQL,不能使用OPEN;
    但是从你的报错信息来看,好象不是这个问题,不过先改了试一试吧
      

  10.   

    各位大哥,还是不对,仍然提示"参数出错,期待是2.........."
    你们看看在语法上有什么错误吗?其实这句话是这样的:
            query1.close;
            query1.sql.clear;
            query1.sql.add('insert into gsxx(gsdm,gsxm) values(strtoint(trim(edit1.text)),trim(edit2.text))');
            query1.ExecSQL;
      

  11.   

    对不起,我以为你的dm,xm是字段应该这样写
    query1.close;
            query1.sql.clear;
         query1.sql.add('insert into gsxx(gsdm,gsxm) values ('''+edit1.text+''','''+edit2.text+''')');
            query1.ExecSQL;改成这样试试
      

  12.   

    点击管理阿!
    我同意pazee(耙子)的说法,
    因为与我想的一样
      

  13.   

    dm,xm是变量的话
    query1.sql.add('exec(''insert into gsxx(gsdm,gsxm) values('+dm+','+'xm'+')'')');
      

  14.   

    query1.sql.add('insert into gsxx(gsdm,gsxm) values(:dm,:xm)');
    如此了