Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 17 Próxima »

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 à chamada de ::Exec()

Parâmetros

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

retValVariávelReceberá 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 .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.



  • Sem rótulos