Página 1 de 1

número de registro en uma tabela indice

Enviado: 20 Out 2019 17:24
por Adalberto
Boa tarde amigos.
Por favor me ajude com o seguinte:

Exemplo:

Clientes.DBF
Zapata // (RECNO() = 1)
Garcia // (RECNO() = 2)
Baqueros // (RECNO() = 3)

INDEX ON Apellido ON Temp

na tabela TEMP ficará

Baqueros // (RECORD 1)
García // (RECORD 2)
Zapata // (RECORD 3)

Eu preciso saber que número de registro tem o sobrenome Baqueros na tabela de índice.

Baqueros // (RECORD 1),

O “RECORD” 1 é o que eu preciso.

Muito obrigado antecipadamente.

Um grande abraço a todos

Adalberto

número de registro en uma tabela indice

Enviado: 20 Out 2019 17:52
por susviela@bol.com.br
Acho que essa função vai te ajudar:
Se eu entendi sua pergunta.

https://harbour.github.io/doc/harbour.html#reccount


--------------------
Li novamente sua pergunta e talvez seja isso que buscas:

Código: Selecionar todos

DBGOTOP()
 LOCATE FOR 'Baqueros'$Apellido
IF EOF()
    ? "Não achei"
ELSE 
  ? RECNO()
ENDIF
.
#Susviela

número de registro en uma tabela indice

Enviado: 20 Out 2019 18:41
por JoséQuintas
Adalberto escreveu:Eu preciso saber que número de registro tem o sobrenome Baqueros na tabela de índice.
Sei lá se entendi...
A pergunta só faz sentido se fosse a posição do índice, porque a do arquivo é só pegar RecNo()

Código: Selecionar todos

SEEK "BAQUEROS"
? RecNo()

número de registro en uma tabela indice

Enviado: 20 Out 2019 21:00
por Adalberto
Queridos amigos, muito gratos por sua atenção e sua ajuda

É como diz o professor JoséQuintas, a questão é como saber o número do registro, mas no arquivo de índice não do DBF

Aguardo sua ajuda, obrigado a todos.

Abrazos.

Adalberto

número de registro en uma tabela indice

Enviado: 21 Out 2019 10:13
por JoséQuintas
hbmk2 -find ordkey

Núcleo Harbour (instalado):
ordKey()
ordKeyAdd()
ordKeyCount()
ordKeyDel()
ordKeyGoto()
ordKeyNo()
ordKeyRelPos()
ordKeyVal()
O mais provável é que seja OrdKeyNo()

número de registro en uma tabela indice

Enviado: 21 Out 2019 10:15
por Adalberto
Queridos amigos, bom dia.

Para esclarecer minha pergunta, devo dizer que o que preciso é:

Conhecer o número do registro na tabela indexada.

Como sabemos, um registro que está no último na tabela sem indexar pode ser o primeiro na tabela indexada, portanto, preciso saber qual é o número de cada registro com a tabela é idexada.

por favor, desculpe-me se eu não me expressar bem.

Espero sua ajuda, muito obrigado.

Adalberto.

número de registro en uma tabela indice

Enviado: 21 Out 2019 10:17
por susviela@bol.com.br
Interessante a questão, mas ... Teria alguma aplicação para isso ?

Pois na pratica, o que interessa mesmo é os dados da tabela/dbf, então fiquei curioso para saber qual sua real necessidade, e quem sabe criar uma gambiarra, hehehehe.

#Susviela

número de registro en uma tabela indice

Enviado: 21 Out 2019 10:33
por Nascimento

Código: Selecionar todos

  local nRec:= 0
   sele temp
   set order to 1
  seek Baqueros
 if (found())
     nRec := Recno()
 endif

if nrec != 0
  alert(rtrim(str(nrec)))
endif

se entendi bem deve ser isso que vc quer

número de registro en uma tabela indice

Enviado: 21 Out 2019 10:36
por Adalberto
Meus caros,

Exemplo:

Código: Selecionar todos

Personas.DBF
Zapata       // (RECNO() = 1)
Garcia       // (RECNO() = 2)
Baqueros   // (RECNO() = 3)

//
LOCAL nRegistro:= 0
SELECT 1 // Personas
USE Personas
INDEX ON Nombre TO Personas
DBGOTOP()
WHILE !EOF()
     nRegistro++
     ? Nombre, nRegistro
     wait
     SKIP
ENDDO
DBCLOSEAREA()
RETURN NIL

Resultado:
Baqueros         1
Garcia             2
Zapata            3
Então, eu recebo o que preciso, agora sei qual é a posição de cada registro na tabela indexada.

Mas eu gostaria de conseguir isso sem passar por toda a tabela.

Como posso obter a posição de um registro sem percorrer a tabela inteira?

número de registro en uma tabela indice

Enviado: 21 Out 2019 11:04
por Ranier
Adalberto escreveu:Como posso obter a posição de um registro sem percorrer a tabela inteira?
O Jose Quintas ja respondeu a sua pergunta:
ordKeyNo()
Precisa ler melhor as respostas...

número de registro en uma tabela indice

Enviado: 21 Out 2019 11:08
por Adalberto
Resolvido !!

A todos os amigos e professores do fórum: Muito obrigado, Deus os abençoe.

Maestro JoséQuintas, a função OrdKeyNo() é o que eu estava procurando, ela resolve exatamente.

Mestre Susviela:
Uso o TBBrowse e, para posicionar em um determinado registro, faço-o com:
SETPROPERTY (cWinName, 'oBrowAseg', 'Value', nPos)

Assim:
SEEK cNombre // ex. 'Baqueros'
nRecNo:= RECNO() // 133 na tabele sem indexar
nPos:= OrdKeyNo() // 4351 na tabela INDEXADA
SETPROPERTY ('Janela', 'oBrowNom', 'Value', nPos)


Agradeço a todos.

Adalberto