Trabalhando com Tabela de Parâmetros – SX6
Visualizando o conteúdo do parâmetro registrado na tabela SX6
Temos funções prontas que permitem pegar o valor de um parâmetros. Podendo ser as funções:
GETMV()
Retorna o conteúdo do parâmetro especificado no Arquivo SX6.
Sintaxe:
GETMV(parametro)
Exemplo:
Com base na imagem acima, pegar o valor do parâmetro MV_ZTPDB, do tipo caracter
1 |
Local cTipoDB := GETMV("MV_ZTPDB") |
Retorno:
MSSQL
SUPERGETMV()
Retorna o conteúdo do parâmetro especificado no Arquivo SX6. Porém, caso o parâmetro não exista, podemos pré-definir um conteúdo padrão, desta forma a rotina não dará erros, apenas um alerta (caso esteja parametrizado), mas irá trazer o valor definido. Caso contrário, trará a informação do conteúdo definido na tabela SX6.
Sintaxe:
SUPERGETMV( <nome do parâmetro>, <lHelp>, <cPadrão>, <Filial do sistema> )
Exemplo:
Baseando-se na imagem acima, irei buscar o conteúdo do parâmetro MV_ZTPDB
1 |
Local cTipoDB := SUPERGETMV ("MV_ZTPDB",.T.,"") |
Retorno:
MSSQL
Caso o parâmetro não exista:
1 |
Local cTipoDB := SUPERGETMV ("MV_ZTPDB",.T.,"ORACLE") |
Retorno:
ORACLE
Salvando conteúdo em parâmetros
Para salvar um determinado conteúdo no seu parâmetro, utilize a função PUTMV()
Sintaxe:
PUTMV( <nome do parâmetro>, <conteúdo> )
Exemplo:
1 |
PUTMV("MV_ZTPDB","ORACLE") |
Retorno: Irei graver o conteúdo “ORACLE” no meu parâmetro MV_ZTPDB existente na minha tabela SX6.
Criando um parâmetro via código
A criação de parâmetros para suas rotinas é um processo bem simples, você fazê-lo diretamente dentro de seu fonte caso não queira abrir o “Configurador”, para isso usa o código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
DbSelectArea("SX6") //Abre a tabela SX6 DbSetOrder(1) //Se posiciona no primeiro indice If !DbSeek(xFilial("SX6")+"MV_ZTPDB") //Verifique se o parametro existe RecLock("SX6",.T.) //Se nao existe, criar o registro SX6->X6_FIL := xFilial( "SX6" ) SX6->X6_VAR := "MV_ZTPDB" SX6->X6_TIPO := "C" SX6->X6_DESCRIC := "Tipo de Banco de Dados utilizado para..." SX6->X6_CONTEUD := "ORACLE" MsUnLock() //salva o registro com as informações passada Else RecLock("SX6",.F.) //Abre o registro para edição SX6->X6_CONTEUD := "ORACLE" //atualiza apenas o campo desejado MsUnLock() //salva o registro EndIf |
Como vê, tem várias formas de se trabalhar com leitura e gravação da tabela SX6, se souber de mais alguma, compartilhe conosco!