查询过滤器delphi firedac Firebird数据库

时间:2015-04-06 15:38:57

标签: sql delphi firebird firedac

我正在将数据库从SQLITE迁移到Firebird,但现在我的查询不起作用。

我做错了什么?有原因吗?

frmDados.Clientes.Close();   
frmDados.Clientes.SQL.Text := 
    'SELECT * FROM CLIENTES ' +
    'WHERE  (nomecliente like  :d1) '+
    'order by nomecliente asc';   
frmDados.Clientes.Params.ParamByName('d1').AsString := '%' + Edit1.text + '%';

frmDados.Clientes.OpenOrExecute();

1 个答案:

答案 0 :(得分:2)

Firebird不支持不区分大小写的查询。

Query_Case_Insensitive.html

考虑这些选项

select * from "abc_table" where "Some_Field" = 'Abc'

select * from "abc_table" where "Some_Field" like 'Abc'

select * from "abc_table" where "Some_Field" containing 'Abc'

select * from "abc_table" where upper("Some_Field") = 'ABC'

等于(=)和 *喜欢 *都执行区分大小写的匹配 *包含 *不区分大小写,但也会匹配'abcd' upper()有效,但不会使用索引,因此会读取表中的每条记录 等于(=)是最快的,因为它使用索引(如果可用)