4D v16Princípios para Integração 4D e motor SQL de 4D |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16
Princípios para Integração 4D e motor SQL de 4D
Princípios para Integração 4D e motor SQL de 4D
Basicamente, o motor SQL de 4D é compatível com SQL-92. Isto significa que para uma descrição detalhada dos comandos, funções, operadores e sintaxes a utilizar, pode se referir a documentação do SQL-92. Múltiplos recursos sobre este tema estão disponíveis em Internet. Uma vez que o motor SQL de 4D foi integrado no coração do banco de dados de 4D, todas as limitações relativas ao número máximo de tabelas, colunas (campos) e registros por base, assim como as regras para dar nomes as tabelas e colunas, são as mesmas as do motor padrão de 4D. São enumeradas a continuação.
A seguinte tabela indica os tipos de dados suportados no SQL de 4D assim como seu tipo correspondente em 4D:
A conversão entre os tipos de dados numéricos é automática.
Os valores NULL se implementam na linguagem SQL de 4D, assim como no motor de banco de dados de 4D. No entanto, não são suportados na linguagem 4D. No entanto, é possível ler e escrever valores NULL em um campo 4D utilizando os comandos Is field value Null e SET FIELD VALUE NULL. Por razões de compatibilidade em 4D, os valores NULL armazenados nas tabelas do banco de dados 4D se converte automaticamente em valores por padrão quando é manipulado sob a linguagem 4D. Por exemplo, no caso da seguinte instrução: mivarAlf:=[minhatabela]MeuCampoAlfa ... se o campo MeuCampoAlfa contém um valor NULL, a variável mivarAlfa conterá "" (cadeia vazia).
Por outra parte, este mecanismo, em princípio, não se aplica aos tratamentos realizados a nível do motor do banco de dados 4D, tais como as consultas. Na verdade, a pesquisa de um valor "vazio" (por exemplo meuvalor = 0) não encontra registros que armazenem o valor NULL e vice-versa. Quando os dois tipos de valores (valores por padrão e NULL) estão presentes nos registros para um mesmo campo, alguns processos podem ser alterados ou necessitar código adicional. Para evitar estes inconvenientes, uma opção permite padronizar todos os procedimentos da linguagem 4D: Mapear valores NULOS a valores vazios. Esta opção, que é encontrada na janela Inspetor de campos do editor de estrutura, permite estender o princípio de utilizar os valores por padrão em todos os tratamentos. Os campos que contenham valores NULL se consideram sistematicamente que contém valores por padrão. Esta opção está selecionada por padrão. A propriedade Mapear valores NULOS a valores vazios é levado em conta a um nível muito baixo do motor do banco de dados. Atua mais particularmente no comando Is field value Null. A propriedade de campo Rejeitar valor NULO de entrada permite evitar o armazenamento de valores NULL: Quando este atributo está selecionado para um campo, não será possível armazenar o valor NULL neste campo. Esta propriedade de baixo nível corresponde exatamente ao atributo NOT NULL de SQL. Nota: Em 4D, os campos também podem ter o atributo "Obrigatório". Os dois conceitos são similares, mas seu alcance é diferente: o atributo "obrigatório" é um controle de entrada, ainda que o atributo "Rejeitar valor NULO de entrada" trabalha ao nível do motor do banco de dados. O servidor SQL integrado de 4D suporta as constantes data e hora de acordo ao API ODBC. Esta é a sintaxe para as sequências de constantes data e hora ODBC: {constant_type 'value'}
Note: fff indica milissegundos. Por exemplo, pode utilizar as seguintes constantes: { d '2013-10-02' } O SQL date parser rejeita qualquer expressão de dada especificando "0" como o dia ou mês. Expressões como {d'0000-00-00'} ou CAST('0000-00-00' AS TIMESTAMP) gera um erro. Para realizar pesquisas SQL em datas blank (não deve ser confundido com datas null), deve usar uma expressão 4D intermediária. Por exemplo: C_LONGINT($count) Uma propriedade de segurança foi adicionada para os métodos projeto 4D: Disponível via SQL: Quando está selecionada, esta opção permite a execução do método de projeto pelo motor SQL de 4D. Não está selecionada por padrão, o que significa que os métodos projeto 4D estão protegidos e não podem ser chamados pelo motor SQL de 4D a menos que tenha sido expressamente autorizado ao selecionar esta opção.Esta propriedade se aplica a todas as consultas SQL, tanto internas como externas, se executada via o driver ODBC, o código SQL inserido entre as etiquetas Begin SQL/End SQL, ou via o comando QUERY BY SQL. Notas:
4D implementa o conceito de esquemas. Um esquema é um objeto virtual que contém as tabelas da base. No SQL, o propósito dos esquemas é atribuir direitos de acesso específicos aos diferentes conjuntos de objetos da base. Os esquemas dividem a base em entidades independentes que em conjunto formam toda a base. Em outras palavras, uma tabela sempre pertence a um só esquema.
Nota: O controle de acesso sob os esquemas somente é aplicado as conexões desde o exterior. O código SQL executado em 4D via as etiquetas Begin SQL/End SQL, SQL EXECUTE, QUERY BY SQL, sempre têm acesso total. A arquitetura multi-bases se implementa a nível do servidor SQL de 4D. Desde 4D é possível:
Na linguagem SQL, uma chave primária permite identificar em uma tabela a(s) coluna(s) (campos) responsáveis de designar de maneira única os registros (linhas). A definição de uma chave primária é particularmente necessária para a função de replicação dos registros de uma tabela de 4D (ver a seção Replicação via SQL) e para o histórico das tabelas 4D a partir da v14. 4D lhe permite administrar a chave primária de uma tabela de duas formas:
Pode definir uma chave primária durante a criação de uma tabela (via o comando CREATE TABLE) ou ao agregar ou modificar uma coluna (via o comando ALTER TABLE). A chave primária se define utilizando a cláusula PRIMARY KEY seguida pelo nome da coluna ou de uma lista de colunas. Para obter mais informação, consulte a seção . 4D lhe permite criar e excluir diretamente chaves primárias via o menu contextual do editor da estrutura. Para saber mais, consulte, Definir ou eliminar uma chave primária no manual de Desenho 4D. O motor SQL integrado de 4D suporta vistas SQL padrão. Uma vista é uma tabela virtual com dados que podem proceder de várias tabelas das bases de dados. Uma vez que se define uma vista, pode utilizar em uma instrução SELECT como uma tabela real.
Ver também
|
PROPRIEDADES
Produto: 4D
HISTÓRIA
ARTICLE USAGE
Manual de SQL ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||