Dispara a execução de um comando a ser processado pelo servidor Redis.
Sintaxe
oRedisAfter := oRedisClient:Exec(cCommand, @retVal)
Retorno
::Exec() retorna o próprio objeto sobre o qual foi feita a chamada do método, com seu estado alterado pela chamada. Isto permite acoplar outros métodos e propriedades à chamada de ::Exec()
Por exemplo, oRedisCli:Exec(cCommand, @retVal):lOk
Parâmetros
| Nome | Tipo | Descrição | Obrigatório | Referência | Observações |
|---|---|---|---|---|---|
cCommand | Caractere | Comando Redis a ser executado | X | ||
retVal | Variável | Receberá o resultado da execução | X |
Observações
O método ::Exec() é muito semelhante em propósito ao método ::Append(): ambos disparam a execução de comandos no servidor Redis.
A maior diferença é que o programa que dispare ::Exec() terá que aguardar seu término e receberá dele o resultado do comando, ao passo que isso não ocorre com ::Append(). Por isso ::Exec() fica limitado à programação sequencial e síncrona.
Pontos importantes a serem observados:
- o resultado da função é passado para o parâmetro
retVal, que deve por isso ser passado por referência.::Exec()também altera o estado do objeto sobre o qual é chamado. Por isso, também as propriedades do objeto terão que ser avaliadas depois da chamada ao método::Exec(); - o tipo de dados do resultado da chamada a
::Exec()vai variar de acordo com o comando executado.
Exemplos
#include 'protheus.ch'
User Function redisTst()
Local retVal := Nil
Local cCommand := ''
oRedisCli:= tRedisClient():New()
// Setup Redis connection
oRedisCli:Connect("tec-clima", 6379, "")
If .Not. oRedisClient:lConnected
ConOut("Could not connect to Redis server")
Return .F.
EndIf
// Set the field 'x' to the value 'aaa'
cCommand := "set x aaa"
oRedisCli:Exec(cCommand, @retVal)
// If the execution wasn't fine
If .Not. oRedisClient:lOk
ConOut("Could not Exec(" + cCommand + ")")
ConOut("Exec() result: " + cValToChar(retVal))
VarInfo("State of object: ", oRedisCli)
oRdClient:Disconnect()
Return .F.
EndIf
ConOut("Successful Exec(" + cCommand + ")")
ConOut("Result of Exec(): " + retVal)
VarInfo("State of the object: ", oRedisClient)
oRdClient:Disconnect()
Return .T.
Exemplo 1
Import HTML Content
Visão Geral
Conteúdo das Ferramentas