TTable的Filter属性设置问题,在SQL查询器下可以返回行,在程序中不行,救救我啊?!
本人有段设置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.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
condition := condition + QuotedStr(tmpDS.FieldValues['车牌号码'])+', ';
end;
tmpDS.GotoBookmark(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查询分析器中执行是可以返回行的,为什么在这里不行呢?!