本人在用 adoquery 做如下的操作 delete from table where id=:id
数据库是access 该操作失败,但是select 语句正常,why??????????
谁能告诉我??我狂加分!!!!!!!!!100分 !

解决方案 »

  1.   

    是不是保留字问题
    把语句在access查询中测试一下如何?
      

  2.   

    好像是delete table where id=:id
      

  3.   

    看看这样:
    delete from table where [id]=:id
      

  4.   

    delete from [table] where id=:id
    你好象用了保留字TABLE作表名,加上[]就行了
      

  5.   

    你用到了系统的保留字table 换个名称 或者加上中括号
      

  6.   

    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('delete from table where id=:id;');
      execsql;
    end;
      

  7.   

    楼上的办法再加上参数
    parameters.parambyname(‘id’).value:=参数
      

  8.   

    delete from [table] where [id]=:id
      

  9.   

    delete table where [id]=:id
    语法错误,不用FROM的!!
      

  10.   

    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('delete from table where id=:id;');
      parameters.parambyname(‘id’).value:=参数
      execsql;
    end;
      

  11.   

    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('delete from [table] where [id]=:id;');
      parameters.parambyname(‘id’).value:=参数
      execsql;
    end;
      

  12.   

    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('delete from table where [id]=:id;');
      parameters.parambyname(‘id’).value:=参数;
      prepared;
      execsql;
    end;
      

  13.   

    delete table where [id]=:id
      

  14.   

    SQL改為: delete from table where [id]=:id
      

  15.   

    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('delete from table where [id]=:id;');
      parameters.parambyname(‘id’).value:=参数;
      prepared;
      execsql;
    end;
      

  16.   

    adoquery1.sql.text:='delete from table where id=:id';
    adoquery1.parameters.parambyname(‘id’).value:=参数;
    prepared;
    execsql;
      

  17.   

    delete from table where table.id=:id
    delete table where table.id=:id一个个试试看,^ō^
      

  18.   

    谢谢大家光顾,我已经找到答案了,adoquery 执行如 delete update(带参数) 等不返回结果集的操作
    要执行 delete update 请直接使用adocommand or adoconnection   
      

  19.   

    不是的~~query  不是有个open和execsql吗?一个带结果集一个不带。
      

  20.   

    晕,
    楼主得到了正确的答案,请及时结贴。 jiangjian0427(carabao):对于SELECT是返回结果集要用OPEN,对于INSERT UPDATE DELETE则要用EXECSQL。--------------------------
    在错的时间遇见错的人 是一种伤痛 
    在错的时间遇见对的人 是一种遗憾 
    在对的时间遇见错的人 是一种心伤 
    只有在对的时间遇见对的人才是一种幸福