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
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
Local cTipoDB := SUPERGETMV ("MV_ZTPDB",.T.,"")Retorno: MSSQL Caso o parâmetro não exista:
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:
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:
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 EndIfComo vê, tem várias formas de se trabalhar com leitura e gravação da tabela SX6, se souber de mais alguma, compartilhe conosco!