GARANTIR DESCONTO

Fórum Como alterar o Dialect de 1 para 3? #42153

05/02/2004

0

Galera,
Criei uma SP em um banco de dados Teste com Dialect 3, mas quando tentei criar a mesma SP no meu banco real, de todos os meus clientes, constatei que todos eles são Dialect 1 e ai na criação da SP recebo um erro.

Então fiquei com algumas dúvidas.

1. Meus bancos de dados estão todos em Dialect 1, como faço para mudá-los para o Dialect 3.
2. Tem muita diferença ´razoável´, digo, campos data, double precision e etc...?
3. Será que meus campos DATE vão dar problemas?


Valeu


----------> Minha Stored Procedure

CREATE PROCEDURE PR_CLIENTE_ANIVER (
PCADASTRO VARCHAR(10))
RETURNS (
IDADE INTEGER)
AS
DECLARE VARIABLE ANONASC INTEGER;
DECLARE VARIABLE MESNASC INTEGER;
DECLARE VARIABLE DIANASC INTEGER;
DECLARE VARIABLE ANO INTEGER;
DECLARE VARIABLE MES INTEGER;
DECLARE VARIABLE DIA INTEGER;
DECLARE VARIABLE VDATAANIVER DATE;
DECLARE VARIABLE VCADASTRO VARCHAR(10);
BEGIN
Ano = Extract(Year from Current_Date);
Mes = Extract(Month from Current_Date);
Dia = Extract(Day from Current_Date);
FOR SELECT Cadastro,Aniver FROM CLIENTES WHERE CADASTRO = :PCADASTRO INTO :VCadastro, :vDataAniver do
BEGIN
AnoNasc = Extract(Year from vDataAniver);
MesNasc = Extract(Month from vDataAniver);
DiaNasc = Extract(Day from vDataAniver);
Idade = Ano - AnoNasc;
if ((MesNasc > Mes) or ((MesNasc = Mes) and (DiaNasc > Dia))) then
Idade = Idade - 1;
SUSPEND;
END
END


Adriano Santos

Adriano Santos

Responder

Post mais votado

06/02/2004

{ o gfix esta na pasta Bin do IB/FB e é um programa em modo caracter! }

Trocar o ´Dialect´ de 1 para 3 ::
gfix banco -sql_dialect 3 -user SYSDBA -password masterkey

{ banco é o caminho e nome do GDB/FDB
senha pode diferir, mas a padrão é masterkey }

[b:c7f9d533d5]Sobre o Dialeto 3[/b:c7f9d533d5]

As seguintes características são específicas do DIALETO 3, e são incompatíveis com o dialeto 1 e todos os BDs e clientes antigos:

Constantes alfa-numéricas devem ser delimitadas por aspas simples (apóstrofre). Aspas duplas (´) são usadas somente em identificadores delimitados. O tipo de dado DATE armazena somente a DATA. Dois novos tipos de dados estão disponíveis : TIME que armazena somente a informação de HORA, e TIMESTAMP que armazena ambos DATA e HORA. O tipo TIMESTAMP substitui a funcionalidade do tipo DATE das versões anteriores do IB. O Dialeto 3 também inclui os operadores funcionais CURRENT_DATE, CURRENT_TIME, e CURRENT_TIMESTAMP. Tipos DECIMAL e NUMERIC com precisão maior que 9 são gravados utilizando inteiros de 64 bits se forem criados no dialeto 3. Note que todas os campos desse tipo continuam sendo armazenados como float se o BD foi trazido de alguma versão anterior do IB.
[i:c7f9d533d5]by firebase...[/i:c7f9d533d5]


Maicongabriel

Maicongabriel
Responder

Gostei + 1

Mais Posts

11/10/2016

Ricardo

Obrigado pela dica, funcionou perfeitamente comigo.
Responder

Gostei + 0

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

Aceitar