两段同样意思的代码:
1.使用sql语句
SQLstr := 'SELECT COUNT(*) FROM CARS';
SQLstr := SQLstr + ' WHERE UNITID LIKE ''' + UnitId + '%''';
SQLstr := SQLstr + ' AND CARTYPEID LIKE ''' + ACarTypeId + '%''';
SQLstr := SQLstr + ' AND USEDATE BETWEEN ''' + DateToStr(dtpStart.Date) + ''' AND ''' + DateToStr(dtpEnd.Date) + '''';
with adoqryCars do
begin
Close;
SQL.Clear;
SQL.Add(SQLstr);
Open;
end;
2.使用filter
SQLstr := 'UNITID LIKE ''' + UnitId + '%''';
SQLstr := SQLstr + ' AND CARTYPEID LIKE ''' + ACarTypeId + '%''';
SQLstr := SQLstr + ' AND USEDATE BETWEEN ''' + DateToStr(dtpStart.Date) + ''' AND ''' + DateToStr(dtpEnd.Date) + '''';
with adoqryCars do
begin
Open;
Filtered := False;
Filter := SQLstr;
Filtered := True;
end;其中adoqryCars的sql属性在开始赋值为select * from cars,及是有数据的。第一种表示方法,执行没有问题,第二种表示方法执行到Filter := True就出错:
Arguments are of the wrong type,are out of acceptable range,or are in conflict with another.请大家看看,问题出在什么地方???
1.使用sql语句
SQLstr := 'SELECT COUNT(*) FROM CARS';
SQLstr := SQLstr + ' WHERE UNITID LIKE ''' + UnitId + '%''';
SQLstr := SQLstr + ' AND CARTYPEID LIKE ''' + ACarTypeId + '%''';
SQLstr := SQLstr + ' AND USEDATE BETWEEN ''' + DateToStr(dtpStart.Date) + ''' AND ''' + DateToStr(dtpEnd.Date) + '''';
with adoqryCars do
begin
Close;
SQL.Clear;
SQL.Add(SQLstr);
Open;
end;
2.使用filter
SQLstr := 'UNITID LIKE ''' + UnitId + '%''';
SQLstr := SQLstr + ' AND CARTYPEID LIKE ''' + ACarTypeId + '%''';
SQLstr := SQLstr + ' AND USEDATE BETWEEN ''' + DateToStr(dtpStart.Date) + ''' AND ''' + DateToStr(dtpEnd.Date) + '''';
with adoqryCars do
begin
Open;
Filtered := False;
Filter := SQLstr;
Filtered := True;
end;其中adoqryCars的sql属性在开始赋值为select * from cars,及是有数据的。第一种表示方法,执行没有问题,第二种表示方法执行到Filter := True就出错:
Arguments are of the wrong type,are out of acceptable range,or are in conflict with another.请大家看看,问题出在什么地方???
解决方案 »
- 实数格式定义的问题:
- ¥¥¥¥¥¥¥¥揭开华为神秘面纱---谨以此献给即将走向华为或意欲洞穿华为的同胞¥¥¥¥¥¥¥¥
- 求餐饮连锁管理系统的需求或相关资料!
- stringGrid表格设置
- 如何向TWebBrowser赋值?
- controlstate属性中有csdocking控件正在入坞,请为什么是入坞
- 请问INDY控件组中哪个控件可支持网络中的文件传送?
- 谁有《Delphi5企业级解决方案及应用剖析》的源码?
- 我用isapi作的程序为什么换一台机子,同一个目录下却不能用了?
- xml 快速写入dbgrid (不使用.xtr)方式
- API问题
- 哪儿能下载《DELPHI4.0编程技术内幕》的配套光盘??
SQLstr := 'UNITID = ''' + UnitId + '*''';
SQLstr := SQLstr + ' AND CARTYPEID = ''' + ACarTypeId + '*''';
SQLstr := SQLstr + ' AND USEDATE >= ''' + DateToStr(dtpStart.Date) + ''' AND USEDATE <= ''' + DateToStr(dtpEnd.Date) + '''';
with adoqryCars do
begin
Open;
Filtered := False;
Filter := SQLstr;
Filtered := True;
end;
< Less than
> Greater than
>= Greater than or equal to
<= Less than or equal to
= Equal to
<> Not equal to
AND Tests two statements are both True
NOT Tests that the following statement is not True
OR Tests that at least one of two statements is True
+ Adds numbers, concatenates strings, ads numbers to date/time values (only available for some drivers)
- Subtracts numbers, subtracts dates, or subtracts a number from a date (only available for some drivers)
* Multiplies two numbers (only available for some drivers)
/ Divides two numbers (only available for some drivers)
* wildcard for partial comparisons (FilterOptions must include foPartialCompare)