Páginas filhas
  • FWPreparedStatement

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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:

NomeTipoDescrição
cQueryCaracterQuery em SQL ANSI

...

Descrição:
Executa a Query

Parâmetros:

NomeTipoDescrição
cAliasCaracterAlias a ser criado
aSetFieldArray

Vetor com os campos para execução  de TCSetField com a estrutura:                       [1] Nome do Campo
[2] Tipo
[3] Tamanho
[4] Decimal


Retorno:
xRet


...


setFields()

Sintaxe:
FWPreparedStatement():setFields( aSelect ) ->

...

Descrição:
Executa o TCSetField para todos os campos informados via parâmetro SetFields. É necessário que a query já esteja aberta.

Parâmetros:

NomeTipoDescrição
cAliasCaracterAlias que será realizado o TCSetField


...


getResultArray()

Sintaxe:
FWPreparedStatement():getResultArray( cAlias , lClose ) -> aResult

...

Descrição:
Seta o Objeto

Parâmetros:

NomeTipoDescrição
oObjObjetoObjeto de conexão externo (ver Classe: FWDBAccess)


...


setNumeric()

Sintaxe:
FWPreparedStatement():setNumeric( nParam , nValue ) ->

...

NomeTipoDescrição
aParamsArrayArray 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:

NomeTipoDescrição
nParamNuméricoNúmero do parâmetro (1..N)
XValueVariantValor 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()