自定义的一个查询函数QueryBrige,其中Brige1和Brige2两个参数程序中用combox.text和edit.text做实参,比如combox.text为字段名“桥梁名称”,edit.text为查询条件“=***立交桥”;DAHelper.ExeSqlQuery是一个执行sql 语句的函数;但是函数QueryBrige运行中总是提示字符串sql有语法错误,请大家帮忙改错,多谢
function QueryBrige(Brige1:string;Brige2:string):TADOQuery;
  var
  sql:string;
  begin
  sql:='select * from  桥涵设施普查基层表 where''''+Brige1+''''+Brige2+'''';
  result:=DAHelper.ExeSqlQuery(sql);
  end;

解决方案 »

  1.   

    多了‘号
    function QueryBrige(Brige1:string;Brige2:string):TADOQuery; 
      var 
      sql:string; 
    begin 
      sql:='select * from  桥涵设施普查基层表 where '+Brige1+' '''+Brige2+''''; 
      result:=DAHelper.ExeSqlQuery(sql); 
    end;
      

  2.   

    sql:='select * from  桥涵设施普查基层表 where+''''+Brige1+''''+Brige2+'''';
    或者用delphi 自带的这个函数 QuotedStrsql:='select * from  桥涵设施普查基层表 where'+QuotedStr(Brige1)+QuotedStr(Brige2);
    还有你这个 Brige1 Brige2 要写好 其实只要一个参数就可以了
    function QueryBrige(Brige:string):TADOQuery; 
     var 
      sql:string; 
      begin 
      sql:='select * from  桥涵设施普查基层表 where '+(Brige1); 
      result:=DAHelper.ExeSqlQuery(sql); 
     end;调用 QueryBrige(combox.text + '=' + edit.text);
      

  3.   

    Where和后面语句是要带空格的,而且sql:='select * from  桥涵设施普查基层表 where''''+Brige1+''''+Brige2+''''你这样写,Where和后面的没有空格,而且Brige1和Brige2之间是AND还是OR,你都没有写,语法错了。
      

  4.   

    sql:='select * from  桥涵设施普查基层表 where''''+Brige1+''''+Brige2+'''';
    语法错误, where后要加空格,还有Brige1 Brige2中间要加空格的。
      

  5.   


    'select * from  桥涵设施普查基层表 where '+Brige1+''''+Brige2+'''';
      

  6.   

    执行前showmessage(sql);看看哪里语法错误
      

  7.   

    quotedstr 标准化字符串  
      

  8.   

    quotedstr(Brige2);关键是看你brige2里的内容是什么
      

  9.   

    同意9楼的看法,在result定断点,把sql中的文字放到查询分析器中执行看看是什么样的问题
      

  10.   

    就是SQL语法错误,如果旁边有人找个会的,帮你调一下。