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’函数数据库那边应该没问题
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’函数数据库那边应该没问题
如果你的数据库是用的SQL Server的,它的转换函数是Cast,如果是用的别的,比如Access,函数应该会是别的!查查资料吧!
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;
正如楼上的兄弟们所说,如果你写成那样,SQL中是没有这个函数的,
你可以先把那个SQL语句给个临时的String变量,
然后再把临时字符串给SQL,
那样就没问题了,因为它先执行你付给临时字符串变量的语句,已以生成了一个完整的字符串了。