select * from 用户信息 where 用户信息.部门ID = (select 部门.部门ID from 部门 where 部门名称 = '行政部')
这样一条查询语句,我在delphi下这样实现,错了么?str_sql:='select * from 用户信息 where 用户信息.部门ID = (select 部门.部门ID from 部门 where 部门名称 = "'+str_tmp+'")';
adoquery1.SQL.Add(str_sql);错了的话,怎么改呢?

解决方案 »

  1.   

    str_sql:='select * from 用户信息 where 部门ID in (select 部门ID from 部门 where 部门名称 = '''+str_tmp+''')';
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.SQL.Add(str_sql);
    adoquery1.open;
      

  2.   

    对要把'='改成in 并且Delphi里没有直接用  "   符号的
      

  3.   

    select * from 用户信息 where 部门ID = (select 部门ID from 部门 where 部门名称 = '行政部')
     
    str_sql:='select * from 用户信息 where  部门ID = (select  部门ID from 部门 where 部门名称 = ''+str_tmp+'')';
    adoquery1.SQL.Add(str_sql);
      

  4.   

    str_sql:='select * from 用户信息 where 用户信息.部门ID = (select 部门.部门ID from 部门 where 部门名称 = '+quotedstr(str_tmp);
      

  5.   

    str_sql:='select * from 用户信息 where 用户信息.部门ID = (select 部门.部门ID from 部门 where 部门名称 = '+''''+str_tmp+''''+')'
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.SQL.Add(str_sql);
    adoquery1.open;
      

  6.   

    以上两句的“=”都改成“in”,第二句错在"'+str_tmp+'")'上,这里不能用双引号的,应该改成:'''+str_tmp+''')'  都是单引号
      

  7.   

    如果是用ADO connext在生成连接字符串时选择保存密码就不会出了
      

  8.   

    改Adoconnection的loginPrompt属性为false
      

  9.   

    我选择了保存密码的,但是还是要弹出来;
    而且如果把loginPrompt改为false的话,就不能登录了~直接失败
      

  10.   

    sqlserver不要设sa的密码
    程序里指定