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

26/09/2016

0

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

Responder

Post mais votado

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.

Hélio Devmedia

Hélio Devmedia
Responder

Mais Posts

27/09/2016

Raylan Zibel

Já fez um backup e restore no 2.5?
Responder

27/09/2016

Eduardo Silva

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."
Responder

27/09/2016

Hélio Devmedia

o campo em questão é Date ou DateTimeStamp?
Responder

29/09/2016

Eduardo Silva

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."
Responder

29/09/2016

Eduardo Silva

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."
Responder

29/09/2016

Hélio Devmedia

Desculpe eduardo, o campo e Date ou TimeStamp na Base de dados?
Responder

30/09/2016

Eduardo Silva

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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar