Árvore de páginas

Versões comparadas

Chave

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

Dispara a execução de um comando a ser processado pelo servidor Redis.

Sintaxe

Bloco de código
oRedisAfter := oRedisClient:Exec(cCommand, @retVal)

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
cCommandCaractereComando Redis a ser executadoX

retValVariávelReceberá o resultado da execução
X

Retorno

NomeTipoDescriçãoObservações
oRedisAfter
objeto tRedisClientCópia do objeto sobre o qual foi feita a chamada, alterado por ela.*

Isto permite acoplar outros métodos e propriedades à chamada de ::Exec()
   Por exemplo,
    oRedisCli:Exec(cCommand, @retVal):lOk


   testará se o comando foi bem sucedido, sem a necessidade de uma consulta adicional à parte a ::lOk sobre o objeto oRedisClient.

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. Por exemplo, o comando set retorna valor lógico (.T. ou .F.), enquanto que set retorna uma cadeia de caracteres, ou string.

Exemplos

Exemplo 1 - Emissão do comandoset para o servidor  Redis
Toggle Cloak
exclusivetrue

Cloak
cpptrue

Exemplo 2 - Emissão do comando get para o servidor  Redis 
Toggle Cloak
exclusivetrue

Cloak
cpptrue