Class: QueryUtilities

@nginstack/engine/lib/database/QueryUtilities~ QueryUtilities


new QueryUtilities()

Classe com diversas funções para o auxílio na criação de queries.

Methods


<static> getInstance()

Obtém uma instância compartilhada desta classe.

Returns:
Type
QueryUtilities

clauseWhere(prefixWhereAndOr, fieldName, operator, value)

Expressão "where" para colunas dos Tipos "Data", "Number", "Integer" e "String".

Parameters:
Name Type Description
prefixWhereAndOr string

Prefixo da Expressão "where". Recebe os parâmetros "" (vazio), "where" (quando tratar-se de início da query), ou os operadores lógicos "and" ou "or" a serem utilizados dependendo de cada caso.

Caso o parâmetro value seja informado, porém sem conteúdo, a função retornará uma string vazia ("").

fieldName string

Nome do Campo no Banco de Dados.

operator string

Operador lógico de comparação: ">", ">=", "<", "<=", "=" ou "<>".

value Object

Valor a ser utilizado para a comparação no Banco de Dados.

See:
Returns:

Texto com a expressão "where" a ser passada como parâmetro para a consulta ao banco de dados.

Type
string
Example
var QueryUtilities = require('@nginstack/engine/lib/database/QueryUtilities');
var queryUtilities = new QueryUtilities();

var dataInicial = new Date( 2000, 0, 1 ) // 01/01/2000
var dataFinal = new Date( 2000, 11, 31 ) // 31/12/2000

var where = queryUtilities.clauseWhere( "where", "iDate", ">=", dataInicial )
where += queryUtilities.clauseWhere( "and", "iDate", "<=", dataFinal )

// Neste ponto a variável "where" terá o conteúdo:
  " where iDate >= '01/01/2000' and iDate <= '12/31/2000' "

var ds = connection.getDataSet("select * from PEDIDO " + where )

clauseWhereOfChar(prefixWhereAndOr, fieldName, value [, negation])

Expressão "where" utilizada quando as colunas do banco forem do tipo String.

Parameters:
Name Type Argument Description
prefixWhereAndOr string

Prefixo da Expressão "where". Recebe os parâmetros "" (vazio), "where" (quando tratar-se de início da query), ou os operadores lógicos "and" ou "or" a serem utilizados dependendo de cada caso. Caso o parâmetro value seja informado, porém sem conteúdo, a função retornará uma string vazia ("").

fieldName string

Nome do campo no Banco de Dados.

value string

Valor a ser utilizado para comparação na Coluna do Banco de Dados.

negation boolean <optional>

Se true a clausula será montada com negação (not like).

See:
Returns:

Texto com a expressão "where" a ser passada como parâmetro para a consulta ao banco de dados.

Type
string
Example
var QueryUtilities = require('@nginstack/engine/lib/database/QueryUtilities');
var queryUtilities = new QueryUtilities();

var where = queryUtilities.clauseWhereOfChar( "where", "FLAG", "S" )
// Neste exemplo, A variável "where" terá o conteúdo "  where
( ( Upper( FLAG )  like Upper( 'S' ) ) ) "

var where = queryUtilities.clauseWhereOfChar( "where", "FLAG", "S", true )
// Caso o parâmetro de negação (negation) seja passado com valor true, a variável
"where" terá o conteúdo "  where ( ( Upper( FLAG ) not like Upper( 'S' ) ) ) "

// Frequentemente, utiliza-se para comparar-se a valores
var nome = "Fornecedor Genérico"
var where = queryUtilities.clauseWhereOfChar( "where", "NOME", nome )
// Neste exemplo, A variável "where" terá o conteúdo "  where
//   ( ( Upper( NOME ) like Upper( 'Fornecedor Genérico' ) ) ) "

clauseWhereOfKeys( [prefixWhereAndOr], fieldName, keys [, negation] [, split] [, operatorConcat] [, countKeysForSplit] [, dbType])

Esta função cria uma string com a cláusula where para lista de chaves.

Parameters:
Name Type Argument Description
prefixWhereAndOr string <optional>

Qual é o prefixo para expressão? vazio, Where, or ou and.

fieldName string

Nome do campo para clausula.

keys number | string

Chave ou Lista de Chaves

negation boolean <optional>

Se true a clausula será montada com negação ( not in ).

split boolean <optional>

Parâmetro deprecated. Se true a expressão poderá ser quebrada em várias expressões.

operatorConcat string <optional>

Parâmetro deprecated. Valor padrão OR. Concatenador das expressões caso tenha quebra em mais de uma expressão ( split == true ).

countKeysForSplit number <optional>

Parâmetro deprecated. Quantidade máxima de chaves para cada expressão se tenha quebra em mais de uma expressão ( split == true ). A quantidade 10 como default deve ao SQLServer fazer pesquisa sequencial caso a lista ultrapasse esta quantidade de itens.

dbType Object <optional>

Parâmetro deprecated. Tipo do banco de dados onde a query será executada . Quando não informado será buscado do connection.dbType.

See:
Returns:

Expressão SQL Where

Type
string
Example
var QueryUtilities = require('@nginstack/engine/lib/database/QueryUtilities');
var queryUtilities = new QueryUtilities();

var chaves = "-1899999998,-1899999997,-1899999122,-1899931617,-1899927771,-1898188393," +
   "-1898188390,-1898188389,-1898188388,-1898188233,-1898188232,-1898188231,-1897148047";

// Exemplo para o Banco de Dados SQL Server da Microsoft
var where = queryUtilities.clauseWhereOfKeys( "where", "p.PESSOA", chaves, false, true,
"or", 5, "MSSQL");

// A variável "where", será uma String com o conteúdo:
" where ( ( p.PESSOA in ( -1899999998,-1899999997,-1899999122,-1899931617,-1899927771 ) )" +
        " or ( p.PESSOA in ( -1898188393,-1898188390,-1898188389,-1898188388,-1898188233 ) )" +
        " or ( p.PESSOA in ( -1898188232,-1898188231,-1897148047 ) ) )";

// Exemplo para o Banco de Dados ORACLE
var where =  queryUtilities.clauseWhereOfKeys( "where", "p.PESSOA", chaves, false, true,
   "or", 5, "ORACLE" );

// A variável "where", será uma String com o conteúdo:
" where p.PESSOA in ( -1899999998,-1899999997,-1899999122,-1899931617,-1899927771," +
   "-1898188393,-1898188390,-1898188389,-1898188388,-1898188233,-1898188232," +
   "-1898188231,-1897148047 )"

// NOTA: Neste exemplo, os quatro últimos parâmetros não são respeitados para o Banco de
// Dados Oracle porque são "deprecated".

// Recomenda-se o uso de, no máximo, os quatro primeiros parâmetros:
var where =  queryUtilities.clauseWhereOfKeys( "where", "p.PESSOA", chaves, true )

// O quarto parâmetro (negation), indica que o a expressão para o query deverá ser de negação.
" where p.PESSOA not in ( -1899999998,-1899999997,-1899999122,-1899931617,-1899927771," +
   "-1898188393,-1898188390,-1898188389,-1898188388,-1898188233,-1898188232," +
   "-1898188231,-1897148047 ) "