Árvore de páginas

Incrementa o valor de um campo especificado de um hash armazenado na chave.


Sintaxe


KVHINCR( < cKey >, < @aValIns > )


Parâmetros
NomeTipoDescriçãoObrigatórioReferência
cKeycharacterNome da chave principal que pretende incrementar o valor de seus campos.X
aValInsarrayArray multidimensional com nomes dos campos e valores para incremento. Novos valores serão retornados por referência.XX
Retorno
NomeTipoDescrição
xRetKVarrayEm caso de sucesso, xRetKV será Nil

Porém, caso ocorra algum erro retorna:
xRetKV[1]= comando executado no servidor KV
xRetKV[2]= mensagem do erro.
Observações
  • Se o valor de incremento for positivo, então será somado ao valor já existente, porém se ele for negativo, então será subtraído.


Exemplos


function u_KVHINCR()

  local oKVClient := tTecKVClient():New()
  local cSrv      := '127.0.0.1'
  local nPort     := 6379
  local aKV       := {}
  local aValIns   := {}

  oKVClient:KVOpenConn(cSrv,nPort)

  if ( oKVClient:KVIsConnected() )

    oKVClient:KVRunCmdExec( 'HSET mykey field 10.50' )
    
    // Valor positivo
    // --------------
      aValIns := {{'field',0.1}}
      oKVClient:KVHINCR( 'mykey', @aValIns )
      
      // Valor novo modo 1 [referencia]
      conout( 'Novo valor [ref]: ' + cValToChar(aValIns[1][2]) ) // deverá ser 10.6
      
      // Valor novo modo 2 [get]
      aKV := oKVClient:KVRunCmdExec( 'HGET mykey field' )
      conout( 'Novo valor [get]: ' + cValToChar(aKV[2]) ) // deverá ser 10.6

    // Valor negativo
    // --------------
      aValIns := {{'field',-5}}
      oKVClient:KVHINCR( 'mykey', @aValIns )
      conout( 'Novo valor: ' + cValToChar(aValIns[1][2]) ) // deverá ser 5.6

  endif

  oKVClient:Finish()  // <- Nao esquecer
return


Abrangência

20.3.0.x ou superior

  • Sem rótulos