Open GuilhermeTito opened 2 months ago
Do jeito que as coisas estão, não vejo como isso poderia ser resolvido de forma satisfatória. Ao passar um valor como Variant
, não há como saber se era originalmente TDateTime
, TDate
ou TTime
, o que é um problema na conversão para string
.
Uma maneira que pensei de resolver isso seria criando subtipos da classe TNullable
, a qual eu provavelmente teria que renomear, para os tipos de dados de cada SGDB.
No fim, isso vai acabar facilitando o processo de tornar o Snow ORM compatível com outros SGBDs além do Firebird, pois poderei definir como deverá ser feita a conversão para string
em cada tipo individualmente.
Um problema da solução proposta anteriormente é que as propriedades das classes que mapeiam entidades do banco de dados teriam que ser objetos, que precisam ser instanciados e destruídos. Também exigiria um passo a mais para acessar os valores das propriedades, pois em vez de, por exemplo, Cliente.Nome := 'João'
teria que ser substituído por Cliente.Nome.Value := 'João'
.
Vou pensar se há outra abordagem possível para solucionar o problema.
Na função
ComparisonOperationBuilder
, valores dos tipos derivados de TDateTime estão sendo passados como texto sem aspas e isso gera erros de SQL.