本人有段设置TTable的Filter属性的代码(在DBGrid中复选若干行,以这些行的'车辆号码'自段作筛选参数,从table中选出相应的行)如下:
  condition := Format('BT_DataGetTime >= %s and BT_DataGetTime <= %s', 
                     [QuotedStr(edBeginTime.Text), QuotedStr(edStopTime.Text)]);  condition := condition + ' and BT_CarID in (';  for i := 0 to DBGrid1.SelectedRows.Count-2 do
  begin      //tmpDS = DBGrid1.DataSource.Dataset
    tmpDS.GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
    condition := condition + QuotedStr(tmpDS.FieldValues['车牌号码'])+', ';
  end;
  tmpDS.GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
  condition := condition + QuotedStr(tmpDS.FieldValues['车牌号码'])+')';  dtmSystem.Table.Filter := condition;
  dtmSystem.Table.Filtered := true;
执行到这句,报错:参数类型不正确 或不在可以接受的范围之内 或与其他参数冲突我用断点停了程序,看到Filter字符串设置正确了:
'BT_DataGetTime >= '2005-5-30 11:26:25' and BT_DataGetTime <= '2005-5-30 12:26:25' and BT_CarID in ('g123', 'g3432')'同样的串我在SQL查询分析器中执行是可以返回行的,为什么在这里不行呢?!