Firebird 2.1 migrado para firebird 2.5 e qual Sql Dialect 1 ou 3

Delphi

Firebird

26/09/2016

Iaê gente!
Eu to com uma dificuldade aqui no Delphi e no firebird.
Eu estava utilizando o fb 2.1 e resolvi migrar para o 2.5 para fazer uns testes
e me deparei com um problema nos tipos de dados (DATE, TIME e TIMESTAMP) nas tabelas estão como DATE só que
Quando vou para o Delphi no DBE com o SQL Dialect 1 da o erro

"Coluna xxx
Client SQL dialect 1 does not support reference to DATE datatype."
e com o SQL Dialect 3 da esse erro
" '0.0' is not a valid timestamp. "
não sei o que fazer já verifiquei se tem esse valor nas tabelas mais a maioria da tabelas estão vazias só a Tabela de Parametros_do_sistema tem um campo com data e é bem nesta hora que da o erro, eu já verifiquei se tem 0.0 e não tem tem a data e nada mais. devo usar o Dialeto 1 ou 3 e como eu resolvo essa questão dos dados...?
Eduardo Silva

Eduardo Silva

Curtidas 0

Melhor post

Hélio Devmedia

Hélio Devmedia

27/09/2016

Olá Eduardo,

1º - Realmente você tem um problema, e talvez precisemos trocar um pouco mais de respostas aqui, mas a primeira coisa que Devemos fazer na migração é verificar se os nossos componentes de acesso ao banco suportam o novo banco. Li que você utiliza o BDE mas não há garantias que ele funcione bem com o firebird 2.5. Talvez seja a hora de você pensar numa migração ao menos para o DBExpress.

2 - Outra coisa é sobre a migração da Base. Embora na internet, tenho lido sobre não haver problema em abrir uma base que está no formato 2.1 (OSD 11.1) num firebird 2.5 (OSD 11.2), em minha experiência de trabalho, descobri vários bugs. O correto é você fazer um backup utilizando o executável gback ou o ibExper ainda com o firebird 2.1 instalado e depois, instalar o firebird 2.5 e restaurar o backup usando o gback que vem na pasta do firebird 2.5 (ou restaurar usando o ibexpert mesmo). Feito isso, você pode ter certeza que toda a estrutura OSD foi atualizada.

3 - Se na sua base, tem campos Date e Time então vocÊ só pode trabalhar com o Dialect 3 visto que o dialect 1 não suporta esse tipo, mas se no 3 gera um erro talvez seja ou por causa do formato do BDE ou da falta da conversão correta da base.

Experimente seguir o passo dois e acessar com o Dialect 3, se não der certo, você deveria planejar a migração para o DBExpress.

Espero ter ajudado. se procurar pode responder aqui, se fui útil, marque no joinha dizendo que o tópico foi útil.
GOSTEI 1

Mais Respostas

Raylan Zibel

Raylan Zibel

26/09/2016

Já fez um backup e restore no 2.5?
GOSTEI 0
Eduardo Silva

Eduardo Silva

26/09/2016

Fiz exatamente como esta no item 2 e aparece coloquei no BDE Dialect1 e apareceu a msg "Coluna xxx
Client SQL dialect 1 does not support reference to DATE datatype."

dai quando mudei para o 3 apareceu a msg "'0.0' is not a valid timestamp."
GOSTEI 0
Hélio Devmedia

Hélio Devmedia

26/09/2016

o campo em questão é Date ou DateTimeStamp?
GOSTEI 0
Eduardo Silva

Eduardo Silva

26/09/2016

O campo é Date.

quando ele passa nesta linha
if (DataModuleGeral.tbParametrosDATA_SISTEMA.AsDateTime<Date) then
           DataModuleGeral.tbParametrosDATA_SISTEMA.AsDateTime := Date; 

da o erro "'0.0' is not a valid timestamp."
GOSTEI 0
Eduardo Silva

Eduardo Silva

26/09/2016

O campo é Date.

quando ele passa nesta linha
if (DataModuleGeral.tbParametrosDATA_SISTEMA.AsDateTime<Date) then
           DataModuleGeral.tbParametrosDATA_SISTEMA.AsDateTime := Date; 

da o erro "''0.0'' is not a valid timestamp."
GOSTEI 0
Hélio Devmedia

Hélio Devmedia

26/09/2016

Desculpe eduardo, o campo e Date ou TimeStamp na Base de dados?
GOSTEI 0
Eduardo Silva

Eduardo Silva

26/09/2016

O campo na base de dados é DATE e no Delphi 7 fica DM.tabelaNOMEdoCAMPO.AsDataTime
GOSTEI 0
POSTAR