Retorna o número da área de trabalho de um alias especificado.




Sintaxe

Select( [ cAlias ] )




Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cAlias

caractere

Indica o alias que será pesquisado.






Retorno

Nome

Tipo

Descrição

nRet

numérico

Retorna o número da área de trabalho do alias especificado.




Observações

  • nRet pode variar de 1 ao valor especificado pela chave "MaxWorkAreas" na seção do ambiente no arquivo ini do AppServer. O valor padrão da chave é 1024.
  • Se o parâmetro cAlias não for especificado, o retorno será o número da área de trabalho corrente.
  • Caso cAlias seja especificado e o alias não exista, o retorno será 0 (zero).
  • A função Sele faz a mesma coisa que a função Select.
  • O retorno dessa função pode ser passada como parâmetro da função DBSelectArea, que selecionará a área de trabalho informada.
  • Cada área de trabalho corresponde às informações de um único alias.
  • A passagem de parâmetros para a função Select, utilizando atribuição em linha, deve sempre estar cercada por parênteses quando utilizada como expressão da instrução "IF".




Exemplos

O exemplo abaixo utiliza a RDD "TOPCONN", mas a função pode ser utilizada com qualquer uma das RDDs válidas.

user function exemplo()
  Local nHandle1 := TCLink( "MSSQL/DSN1", "127.0.0.1", 7890 )
  Local cTable1 := "MYTABLE1"
  Local cTable2 := "MYTABLE2"
  Local cRDD := "TOPCONN"
  
  // Cria a tabela
  DBCreate( cTable1, { { "CPOC", "C", 10, 0 }, ;
                       { "CPON", "N",  3, 0 }, ;
                       { "CPOD", "D",  8, 0 } }, cRDD )
  
  DBCreate( cTable2, { { "CPOL", "L",  1, 0 }, ;
                       { "CPOM", "M", 20*1024, 0 } }, cRDD )
  
  // Abre a tabela 1 em modo exclusivo para leitura criando uma área de trabalho
  DBUseArea( .T., cRDD, cTable1, (cTable1), .F., .T. )
  
  conout( Select() ) // Exibe: 1
  
  // Abre a tabela 2 em modo exclusivo para leitura criando uma área de trabalho
  DBUseArea( .T., cRDD, cTable2, (cTable2), .F., .T. )
  
  // Exibe o número da área de trabalho atual
  conout( Select() )               // Exibe: 2
  
  // Exibe o número da área de trabalho da tabela 1
  conout( Select( cTable1 ) )      // Exibe: 1
  
  // Exibe o número da área de trabalho da tabela 2
  conout( Select( cTable2 ) )      // Exibe: 2
  
  // Exibe o número da área de trabalho de um alias inexistente
  conout( Select( "wrongalias" ) ) // Exibe: 0
  
  // Fecha todas as áreas de trabalho
  DBCloseAll()
  
  // Abre a tabela 1 em modo exclusivo para leitura criando uma área de trabalho
  DBUseArea( .T., cRDD, cTable1, (cTable1), .F., .T. )
  
  // Abre a tabela 2 em modo exclusivo para leitura reaproveitando a área de trabalho atual
  DBUseArea( .F., cRDD, cTable2, (cTable2), .F., .T. )
  
  // Exibe o número da área de trabalho da tabela 2
  conout( Select( cTable2 ) ) // Exibe: 1
  
  // Exibe o número da área de trabalho da tabela 1
  conout( Select( cTable1 ) ) // Exibe: 0, pois o alias da tabela 1 foi fechado pelo alias da tabela 2
  
  // Fecha todas as áreas de trabalho
  DBCloseAll()
  
  // Apaga a tabela 1
  TCDelFile( cTable1 )
  
  // Apaga a tabela 2
  TCDelFile( cTable2 )
  
  // Desconecta
  TCUnlink( nHandle1 )
return