Firebird SQL D3 - record not found...

Sziasztok!

Van egy nagy problémám. Firebird 1.5 adatbázis SQL Dialect 3.
Egy tábla ID mezőjét generátorral töltöm. A mező integer típusú.
select ID from tabla where ID = 1 le is hozza a rekordot.
Ha azonban tárolt eljárásban próbálom kiadni ezt az utasítást, akkor már nem találja meg a rekordot!!!!

Arra mér rájöttem, hogy ha tároltban így adom ki a selectet:

select ID from tabla where cast(ID as integer) = 1

akkor lejön a rekord!!!

Ezután, ha kitörlöm a cast-ot a tároltban, akkor szintén működik. Firebird újraindítás után is. De nem tudom, hogy meddig fog.

Ugyanakkor van egy másik 'jelenség' is. Egy tárolt eljárásban (szintén generátor segítségével) beszúrok 20 rekordot. Utánna normál lekérdezés esetén az első rekordot megtalálja így:

select id from tabla where id = 1;

a másodikat (és a többit) már nem! Tehát a

select id from tabla where id = 2;
már nem hoz eredményt. Viszont:

select id from tabla where not (id <> 2);
lehozza a rekordot!!!

Találkozott már ilyennel valaki? SQL dialect 1 esetén nincs ilyen problémám....