procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
 ADOQuery1.Close;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('select Stype,SName,Apply,Contents,Gcharger,Zcharger   from temp where');
 ADOQuery1.SQL.Add('IntToStr(MONTH(Date))='''+Edit2.Text+'''');
 ADOQuery1.SQL.Add('and YEAR(Date)='''+Edit1.Text+'''');
 ADOQuery1.SQL.Add('and BName='''+ComboBox1.Text+'''');
 ADOQuery1.SQL.Add('and Memo1.Lines.Text :=Contents');
 ADOQuery1.SQL.Add('and Edit3 :=Gcharger');
 ADOQuery1.SQL.Add('and Edit4 :=Zcharger');
 ADOQuery1.Open;
end;
调试的时候,报错:找不到‘IntToStr’函数数据库那边应该没问题

解决方案 »

  1.   

    那当然错了,sql 语句中没有inttostr这个函数啊
      

  2.   

    当然不对了,IntToStr函数是Delphi的,你把它用到SQL中去怎么能对呢?
    如果你的数据库是用的SQL Server的,它的转换函数是Cast,如果是用的别的,比如Access,函数应该会是别的!查查资料吧!
      

  3.   

    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    begin
     ADOQuery1.Close;
     ADOQuery1.SQL.Clear;
     ADOQuery1.SQL.Text :='select Stype,SName,Apply,Contents,Gcharger,Zcharger   from temp where ' + IntToStr(MONTH(Date))+ ' =''+Edit2.Text+'' and ' +  YEAR(Date)+ '=''+Edit1.Text+'' and BName='''+ComboBox1.Text+ ''' and ''' + Memo1.Lines.Text + '''=Contents and ''' + Edit3.text + '''=Gcharger and ''' +Edit4.text +'''=Zcharger';
     ADOQuery1.Open;
    end;
      

  4.   

    函数应该就用Cast了,等我看看手册啦先!
      

  5.   

    在sql中 用cast函数就可以了!或者如: hotzhu(非洲白脸)所写也可!
      

  6.   

    来迟了,
    正如楼上的兄弟们所说,如果你写成那样,SQL中是没有这个函数的,
    你可以先把那个SQL语句给个临时的String变量,
    然后再把临时字符串给SQL,
    那样就没问题了,因为它先执行你付给临时字符串变量的语句,已以生成了一个完整的字符串了。