idl前后不要用+号就可以了要是在不行的话,你就用showmessage()把你写的sql语句提示出来,看看跟你在sql server2000里写的是不是一样

解决方案 »

  1.   

    少一了个括号!
    form3.ADOQuery1.SQL.Add('select * from 文件夹管理 where parentfold=(select parentfold from 文件夹管理 where id='''+id1+''''));
                                                            //少了这个
      

  2.   

    str := 'select * from 文件夹管理 where parentfold=(select parentfold from 文件夹管理 where id = ' + #39 + #39 + id1 + #39 + #39;
    sql.text := str;
    空格;
    sql server -> sql.text <> delphi->sql.text;
      

  3.   

    第二个where条件写的对吗?
    你show出sql.text看看
      

  4.   

    我一般是
    用strsql:string;
    strsql:=你的sql语句
    然后单步执行,将鼠标放在strsql上就可以看到你的sql语句是否正确了