> > This query fails:
> > select * from TABLE1 where FIELD1 like 'абв';
> 
> 
> The "bug" here is that the message for all string input errors is the
> same.  Transliteration of the input argument in the failing query
> would occur as in your third query above if the LIKE argument was
> valid.  IMHO, it should give an invalid DSQL error, not that generic
> string error.

I think, there is no DSQL error - LIKE predicate must correctly process
arguments without mask symbols, as he do this for 'abc' (or 'абв' when DB
default charset not UTF8). Not sure, but think that SQL standard not define
error for this case of LIKE.

> If you wanted to pass a query like that, you should use STARTING [WITH]:
> select * from TABLE1 where FIELD1 STARTING WITH 'абв';

Yes, I also came to this solution, more correct is just FIELD1 = 'абв'.
We call this 'spike'. There is cases where this is impossible or difficult:
- this is impossible, where used third party components without sources
(like EhLib for Delphi, where LIKE used in grid filter; we fix this in sources),
or used third party applications.
- requires additional processing, when we allow users of our client application
perform data searching with LIKE (user can enter search pattern with or without 
'%').

  • [fi... Рустам Муса-Ахунов rusta...@ukr.net [firebird-support]
    • ... Helen Borrie hele...@iinet.net.au [firebird-support]
      • ... Рустам Муса-Ахунов rusta...@ukr.net [firebird-support]
      • ... Rustam rusta...@ukr.net [firebird-support]

Reply via email to