número de registro en uma tabela indice

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

número de registro en uma tabela indice

Mensagem 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
Avatar do usuário
susviela@bol.com.br
Usuário Nível 3
Usuário Nível 3
Mensagens: 236
Registrado em: 30 Jun 2017 11:17
Localização: São José / SC
Contato:

número de registro en uma tabela indice

Mensagem 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
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

número de registro en uma tabela indice

Mensagem 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()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

número de registro en uma tabela indice

Mensagem 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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

número de registro en uma tabela indice

Mensagem 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()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

número de registro en uma tabela indice

Mensagem 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.
Avatar do usuário
susviela@bol.com.br
Usuário Nível 3
Usuário Nível 3
Mensagens: 236
Registrado em: 30 Jun 2017 11:17
Localização: São José / SC
Contato:

número de registro en uma tabela indice

Mensagem 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
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

número de registro en uma tabela indice

Mensagem 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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

número de registro en uma tabela indice

Mensagem 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?
Ranier
Usuário Nível 2
Usuário Nível 2
Mensagens: 80
Registrado em: 02 Abr 2019 09:01
Localização: Goiania/Goias

número de registro en uma tabela indice

Mensagem 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...
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

número de registro en uma tabela indice

Mensagem 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
Responder