做了个简单的人事表,通过窗体查询,查询内容是通过填写几个edit的内容查询,查询的内容有姓名,性别,部门,学历,职称,职务,年龄(多少岁之多少岁,通过俩个edit添写),然后通过一个查询按钮在gbgrid1中显示查询的内容。有时只查姓名,或有时查部门和学历,有是全部查,代码如下:
var
  SQL: string;
begin
  SQL := 'SELECT * FROM Employee WHERE 1 = 1';
  if Trim(edtEmployeeName.Text) <> '' then
    SQL := SQL + ' AND EmpoyeeName = ' + QuotedStr(Edit1.Text);
  if ............我试了,没问题,但查询年龄时,按上面的格式怎么写呀,就是查询X岁到Y岁的人,建表时我建的是出生年月。
有个朋友给了我的代码:
 if Trim(Edit1.Text) <> '' then //
    SQL := SQL + ' AND DATEDIFF(YEAR, Birthday, GETDATE()) >= ' + Edit1.Text + ' ';
 if Trim(Edit2.Text) <> '' then
    SQL := SQL + ' AND DATEDIFF(YEAR, Birthday, GETDATE()) <= ' + Edit2.Text+ ' ';
我运行了一下,没问题,可一查讯岁数时,就出现错误‘project renshi.exe raised exception class EDBEngineError with message'Invalid use of keyword.  token:YEAR,  line number:1'.process stopped.use step or pun to continue’