sql中有一个表 Artist(name,addr,age)delphi中:
AD:string;with AdoQuery1 do begin
  AD:=LookUp('name','bill','addr');    //假设sql中有值(bill,中大,20)
  if strcomp(AD,'zhongda')=0 then showmessage('It's found!');
end;为什么总是不会输出的??
是不是sql返回的字符串的问题????

解决方案 »

  1.   

    //哦,有点点错。是这样的sql中有一个表  Artist(name,addr,age)  
     
    delphi中:  
    AD:string;  
     
    with  AdoQuery1  do  begin  
       AD:=LookUp('name','bill','addr');        //假设sql中有值(bill,中大,20)  
       if  strcomp(AD,'中大')=0  then  showmessage('It's  found!');  
    end;  
     
    为什么总是不会输出的??  
    是不是sql返回的字符串的问题????
      

  2.   

    LookUp 好象要對應索引才行的, 不大肯定
      

  3.   

    LookUp返回为variant类型字段,
    将StrComp(AD, '中大') 改为StrComp(PChar(AD), '中大')试试
      

  4.   

    StrComp(PChar(AD), '中大')  这样也不行的而用showmessge(AD)可以输出'中大'真是奇怪
      

  5.   

    用AnsiCompareString应该可以,我知道其然,不知道其所以然,好像是代码页的问题,你能否给出这个AD字符串的二进制值,让我也看看AD, ADHex:string;  
     
    with  AdoQuery1  do  begin  
       AD:=LookUp('name','bill','addr');        //假设sql中有值(bill,中大,20)  
       SetLenght(ADHex, Length(AD)*2);
       BinToHex(PChar(AD), PChar(ADHex), Length(AD));
       ShowMessage(ADHex);
       if AnsiSameString(AD, '中大') then
          ShowMessage('It's found!');
    end;
      

  6.   

    用Length(AD) 返回的是addr在sql中定义的字节数,应该是有问题的
    因该如何处理?
      

  7.   

    你试了AnsiSameString没有?
    ShowMessage(ADHex);
    得出的是什么?
      

  8.   

    alphax(无之心)
    为什么要    BinToHex(PChar(AD), PChar(ADHex), Length(AD));