Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Complementar comportamento da função com relação a mudança de ordem ativa na abertura
Composition Setup
import.css=/download/attachments/327912/newLayout.css

Pagetitle
DBSetIndex
DBSetIndex

Função: DBSetIndex

Acrescenta

...

uma

...

ou

...

mais

...

ordens

...

de

...

determinado

...

índice à área de trabalho ativa.

Sintaxe

Bloco de código
collapsefalse
DBSetIndex( <

...

 cIndex > )

Parâmetros

...

 

Nome

Tipo

Descrição

Obrigatório

Referência

...

cIndex

...

caractere

Indica o nome do

...

índice que será aberto.

X

 

...

 

Retorno

Nome

Tipo

Descrição

uRet

nil

Sempre retorna nulo.

Observações

  • Caso cIndex não exista, será apresentada a mensagem de erro: "Open index error: XXX". Onde XXX será o conteúdo de cIndex.
  • Se a work area não estiver em uso, será apresentada a mensagem de erro: "Work area not in use".
  • Caso informe uma string vazia no parâmetro da DBSetIndex, será apresentada a mensagem de erro: OrdListAdd: Invalid empty filename
  • Abrir um novo índice não fecha os índices atualmente abertos.
  • Quando a área de trabalho atual já têm algum índice aberto, a ordem atual não é alterada com a abertura de um novo índice.
  • Quando
Nil (Nulo)

...

  • o arquivo de índice possui apenas uma ordem, e a tabela não tenha nenhum índice aberto, a mesma é acrescentada na lista de ordens abertas e torna-se ativa.
  • Quando o índice possui mais de uma ordem, e a tabela não tenha nenhum índice aberto, todas as ordens são acrescentadas na lista de ordens abertas e a primeira torna-se ativa.

...

Para se utilizar arquivos de extensão padrão do RDD, este dado pode ser omitido no primeiro parâmetro, mas caso contrário deve ser especificado.

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
user function test()
  local cT1  := "T1"

  TCLink()
  if TCCanOpen(cT1)
    TCDelFile(cT1)
  endif
  
  DBCreate(cT1,  {{"FIELD_COD" , "C",  2, 0}, ;
                  {"FIELD_NAME", "C", 10, 0}}, "TOPCONN")

  DBUseArea(.T., "TOPCONN", cT1, (cT1), .F., .F.)

  DBCreateIndex("T1INDEX1", "FIELD_COD"            , {|| FIELD_COD            })
  DBCreateIndex("T1INDEX2", "FIELD_COD+FIELD_NAME" , {|| FIELD_COD+FIELD_NAME })
  (cT1)->( DBClearIndex() ) //Força o fechamento dos indices abertos
  
  dbSetIndex("T1INDEX2") //acrescenta a ordem de indice para a área aberta
  msgInfo( "Índice ativo: " + upper(DBOrderInfo(7)) )
  
tcUnLink()

return

Veja também

//Este exemplo, apresenta como utilizar a função DBSetIndex() para acrescentar novos
//índices na lista de ordens.
USE Cliente NEW
DBSetIndex("Ind1")
DBSetIndex("\teste\Ind2.cdx")
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

 

...