Fórum O que são os dialetos do SQL? #286580

30/06/2005

0

Boa Tarde
Gostaria de saber o que são os dialetos SQL. O que eles fazem e para que servem.
Valew


Seu_madruga

Seu_madruga

Responder

Posts

30/06/2005

Martins

Veja só isso...

Essa foi extraída do site firebase, e pode lhe ser muito útil.

O Interbase 6 introduz o conceito de dialetos para permitir aos usuários utilizar novos recursos que não são compatíveis com as versões anteriores do Interbase.

Como o Interbase procura cada vez mais ser compatível com os padrões definidos para o SQL, algumas novas características da versão 6.0 se tornam incompatíveis com as versões anteriores. O uso dos dialetos ajudam nessa transição. O Dialeto 1 garante compatibilidade com versões antigas dos bancos de dados e clientes. O Dialeto 3 permite total acesso aos novos recursos. O Dialeto 2 é usado como um modo de diagnóstico.

Características de transição :


Características que se comportam de maneira diferente nos dialetos 1 e 3 são chamadas de características de transição :

Qualquer coisa delimitada por aspas duplas (´)
Campos Data_e_Hora
Campos numéricos exatos (Decimais e números com precisão maior que 9)
Ambos clientes e BDs devem ter designados um dialeto. Como padrão todo Banco de Dado novo é criado no dialeto 3. O cliente ISQL automaticamente determina qual o dialeto de uma base de dados, a não ser que voce especifique um dialeto manualmente durante a conexão.

A seguir estão listadas as diferenças entre os dialetos.

Características que se comportam da mesma forma para todos os dialetos :


IBConsole
Cláusulas ALTER COLUMN e ALTER TABLE
Tipo de dado TIMESTAMP , que é equivalente ao tipo DATE nas versões anteriores do Interbase (armazenam DATA e HORA em conjunto)
A função EXTRACT() e CURRENT_TIMESTAMP
Bancos de Dados Read-Only
Avisos do SQL
API de Serviços, Instalação e Lincença
Componentes InterBase Express (IBX) para o Delphi 5
DIALETO 1
Usando o dialeto 1, as características de transição se comportam como no Interbase 5:

Constantes alfa-numéricas podem ser delimitadas por aspas simples e duplas. O dialeto 1 não reconhece identificadores delimitados.
O tipo DATE não está disponível, mas é substituído pelo tipo TIMESTAMP, que contém informações sobre data e hora. Quando um banco de dados versão 5 é gravado/restaurado na versão 6, os campos DATE são automaticamente atualizados para o tipo TIMESTAMP.
Os tipos DECIMAL e NUMERIC com precisão maior que 9 são gravados como ponto flutuante.
DIALECT 2
Os Clientes podem ser configurados para utilizar o dialeto 2. Nesse modo, eles reportam erros quando encontram aspas duplas, tipos DATE, ou campos NUMERIC/DECIMAL com precisão maior que 9. Esse dialeto é utilizado para alertar o desenvolvedor para potenciais problemas durante a migração e não deve ser utilizado para uso normal no dia a dia. Para detectar áreas problemáticas na definição de um banco de dados que voce está migrando, extraia a METADATA e rode-a através de um cliente utilizando o dialeto 2. Por exemplo :

isql -i v5metadata.sql

Lembre-se de NÃO utilizar o dialeto 2 para uso normal dos bancos de dados.
DIALETO 3
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.
Identificadores Delimitados SQL


O InterBase agora suporta identificadores delimitados. Esses identificadores são objetos do banco de dados cujos nomes são delimitados por aspas duplas, e são permitidos somente em bancos da versão 6 usando dialeto 3.

No InterBase 6 Dialeto 3, uma constante alfa-numérica é delimitada por aspas simples e um identificador por aspas duplas. Como o nome do identificador agora pode ser delimitado pelas aspas, o tamanho do nome de um identificador é maior possibilitando muito mais variações do que nas versões anteriores.

Os nomes de um Objeto no Interbase agora podem:

Ser uma palavra-chave
Conter espaços (exceto espaços antes e depois do nome)
Usar caracteres não ASCII
Ser sensíveis à CAPS


_________________________________________________________
Martins
Delphi Developer


Responder

Gostei + 0

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

Aceitar