Histórico da Página
...
Descrição:
Informa a query a ser executada, deve ser utilizada a construção com os parametros com ? ao invés do valor, que posteriormente serão passados via setString, SetDate , etc, no caso de tabelas do dicionário de dados usarem a construção idêntica ao Embbeded SQL (%table:AliasEmDic%).
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
cQuery | Caracter | Query em SQL ANSI |
...
setBoolean()
Sintaxe:
FWPreparedStatement():setBoolean( nParam , lValue , lProtheus ) ->
Descrição:
Seta um parâmetro na query do tipo Boolean. Parâmetros iniciam sempre com 1.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
nParam | Numérico | Número do parâmetro (1..N) |
lValue | Lógico | Valor boolean a se passar na query |
lProtheus | Lógico | Se .T. trata o lógico igual ao Protheus, .T. é Default |
...
setDate()
Sintaxe:
FWPreparedStatement():setDate( nParam , dDate ) ->
Descrição:
Seta um parâmetro na query do tipo Data do Protheus. Parâmetros iniciam sempre com 1.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
nParam | Numérico | Número do parâmetro (1..N) |
dDate | Data | Data no formato Protheus |
...
setString()
Sintaxe:
FWPreparedStatement():setString( nParam , cValue ) -> cBuffer
Descrição:
Seta um parâmetro na query via String. Parâmetros iniciam sempre com 1.
Obs.: Deve-se passar a string normalmente, sem uso de aspas simples (') para o banco. Caso seja encontrado esse caracter, será considerado parte da string para o banco, e não como delimitador de string em SQL.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
nParam | Numérico | Número do parâmetro (1..N) |
cValue | Caracter | Valor do conteúdo de String |
Retorno:
cBuffer
...
setIn()
Sintaxe:
FWPreparedStatement():setIn( nParam , aValues ) ->
Descrição:
Seta um parâmetro na query do tipo IN. Parâmetros iniciam sempre com 1.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
nParam | Numérico | Número do parâmetro (1..N) |
aValues | Array | Array com valores do IN |
...
validParamSize()
Sintaxe:
FWPreparedStatement():validParamSize( nParam ) ->
Descrição:
Valida se o parâmetro informado existe na query atual.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
nParam | Numérico | Número do parâmetro (1..N) |
...
getFixQuery()
Sintaxe:
FWPreparedStatement():getFixQuery( ) -> cQuery
...
Descrição:
Executa a Query
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
cAlias | Caracter | Alias a ser criado |
aSetField | Array | Vetor com os campos para execução de TCSetField com a estrutura: [1] Nome do Campo |
Retorno:
xRet
...
setFields()
Sintaxe:
FWPreparedStatement():setFields( aSelect ) ->
Descrição:
Seta os campos do Select
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
aSelect | Array | Array com os nomes dos campos Pode-se utilizar um array no formato: Ou no formato: |
...
getFieldSelect()
Sintaxe:
FWPreparedStatement():getFieldSelect( ) -> cSelect
...
Descrição:
Executa o TCSetField para todos os campos informados via parâmetro SetFields. É necessário que a query já esteja aberta.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
cAlias | Caracter | Alias que será realizado o TCSetField |
...
getResultArray()
Sintaxe:
FWPreparedStatement():getResultArray( cAlias , lClose ) -> aResult
Descrição:
Retorna um array com todos os campos da query para todos os registros. Será utilizado o array de campo passado no SetFields, e não o DBStruct da query.
Esse método não faz DBGOTOP no alias, portanto o ResultSet será a partir do ponto que a "query" está posicionada.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
cAlias | Caracter | Nome do Alias |
lClose | Lógico | Se .T. fecha o alias após consumir os valores. .T. é Default |
Retorno:
aResult - Array com o resultado da query
...
Descrição:
Seta o Objeto
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
oObj | Objeto | Objeto de conexão externo (ver Classe: FWDBAccess) |
...
setNumeric()
Sintaxe:
FWPreparedStatement():setNumeric( nParam , nValue ) ->
Descrição:
Seta um parâmetro na query via String. Parâmetros iniciam sempre com 1.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
nParam | Numérico | Número do parâmetro (1..N) |
nValue | Numérico | Valor do conteúdo numérico |
...
setParams()
Sintaxe:
FWPreparedStatement():setParams( aParams ) ->
Descrição:
Seta todos os parâmetros passados no array. Essa função não é tão performática quanto chamar o setXXXX de cada tipo, pois ela usa valtype.
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
aParams | Array | Array com o valores a serem testados |
...
setUnsafe()
Sintaxe:
FWPreparedStatement():SetUnsafe( nParam , xValue)
Descrição:
Seta um parâmetro na query. Parâmetros iniciam sempre com 1.
Obs.: Por enviar um parâmetro de forma não segura para o statment ele nunca deve ser utilizado
para inserir um parâmetro recebido por uma requisição HTTP, por exemplo, pois ele pode
receber um SqlInjection e causar problemas no sistema. Somente utilize este método
se você estiver seguro que o parâmetro enviado é seguro (por exemplo, trocar o nome de uma tabela de forma dinâmica)
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
nParam | Numérico | Número do parâmetro (1..N) |
XValue | Variant | Valor do conteúdo a ser incluído |
Retorno:
nil
...
Exemplo de Uso da Classe
Bloco de código |
---|
User Function tPrepStat
Local oStatement
Local cQuery
Local cFinalQuery
Local cUser := "000001"
Local cPassword := "testeFWPS"
oStatement := FWPreparedStatement():New()
cQuery := "SELECT * FROM users WHERE username=? AND password=?"
//Define a consulta e os parâmetros
oStatement:SetQuery(cQuery)
oStatement:SetString(1,cUser)
oStatement:SetString(2,cPassword)
//Recupera a consulta já com os parâmetros injetados
cFinalQuery := oStatement:GetFixQuery() |