А вот вы такие умные, подскажите...
Лоханулся я тут с дженериками конкретно, решил сделать универсальную функцию считывания параметров из бд, типа:
Function GetValue<T>(ParamName: string; DefValue: T): T;
Красота! Использование:
Limit :=GetValue('LimitConnection', 1);
Да только если в ходе работы функция из бд вытащит число более 254, то оно исказится, переполнение и вернётся фигня.
Потому что для дефолтного значения 1 она сгенерирует smallInt версию.
И все компилится, и долго работало правильно. Пока в бд не оказалось большого числа и программа стала считывать вместо 10542 какое то значение типа 58 🙈