用ADODATASET连接SQL SERVER库RSGLDA的表RSDA,程序如下:
Procedure lookupclick(sender:tobject)
var
   Lookupstr,Lookupsqlstr:string;
begin
   Lookupstr:=Lookup.text;   //将lookup被选值赋到一变量中
   adodataset1.active:=false;
   lookupsqlstr:='select * from rsda where bm='+''''+lookupstr+'''';
   adodataset1.commandtext:=lookupsqlstr;  //adodataset查询,好象这样写不对
   adodataset1.active:=true;
end; //我点击一tdblookupcombobox类型的lookup,然后查询部门为当前lookup的值。
好象adodataset查询不是这么写吧??
望各位大哥帮帮小妹,小妹以身相许。

解决方案 »

  1.   

    lookupsqlstr:='select * from rsda where bm='+''''+lookupstr+'''';
    不對吧,該是
    lookupsqlstr:='select * from rsda where bm='''+lookupstr+'''';
      

  2.   

    TO:ahliuj (德尔夫) 
        早告訴你了,你這招行不通的.....(扮女人,同行們會知道你是假女人的,不一定會回答你的問題的....)
      

  3.   

    Procedure lookupclick(sender:tobject)
    var
       Lookupstr,Lookupsqlstr:string;
    begin
       Lookupstr:=Lookup.text;   //将lookup被选值赋到一变量中
      {在这里找出lookup的字段原值}
      {在将其赋值给lookuopstr}  
       adodataset1.active:=false;
       lookupsqlstr:='select * from rsda where bm='+''''+lookupstr+'''';
       adodataset1.commandtext:=lookupsqlstr;  //adodataset查询,好象这样写不对
       adodataset1.active:=true;
    end;
      

  4.   

    搞笑
    装什么女人啊?
    好了,言归正传
    你在用ADO连接的数据库中,使用Lookup控件查找出来的字符是没有删除空格的
    lookupsqlstr:='select * from rsda where bm='''+Trim(lookupstr)+''' '
    你这样写试试看吧
    对了,你用的 bm='+''''+lookupstr+'''' ,与bm = ''' + lookupstr + ''''是相同的效果,所以不是这个问题引起的
      

  5.   

    我就算知道也不会回答这种哗众取宠的问题的,请楼主提问题要自重。同意forgot2000(忘记2000年)!!
      

  6.   

    我们的CSDN要保持纯洁,不能让人妖横行啊!
      

  7.   

    改为如下:
    Procedure lookupclick(sender:tobject)
    var
       Lookupstr,Lookupsqlstr:string;
    begin
       Lookupstr:=Lookup.text;   //将lookup被选值赋到一变量中
       adodataset1.active:=false;
       lookupsqlstr:='select * from rsda where bm='+''''+lookupstr+'''';
       adodataset1.commandtext:=lookupsqlstr;  //adodataset查询,好象这样写不对
       adodataset1.open;
    end;
      

  8.   

    经调试,wlw88(飞扬)的解法正确!非常感谢您
      

  9.   

    100块大洋送给wlw88(飞扬),请笑纳!