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 "date", "number" e "string", ou instâncias de
DBKey
.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:
-
- #clauseWhereOfKeys
- #clauseWhereOfChar
- Connection#getDataSet
- QueryAnalyzer
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:
-
- #clauseWhereOfKeys
- #clauseWhere
- Connection#getDataSet
- QueryAnalyzer
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:
-
- #clauseWhereOfChar
- #clauseWhere
- Connection#getChildren
- Connection#dbType
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 a expressão para a query deverá ser de negação. " WHERE p.pessoa NOT IN ( -1899999998,-1899999997,-1899999122,-1899931617,-1899927771," + "-1898188393,-1898188390,-1898188389,-1898188388,-1898188233,-1898188232," + "-1898188231,-1897148047 ) "