No vídeo de hoje, vamos demonstrar em como buscar o nome da base de dados através de comandos em AdvPL.
A dúvida de hoje, nos perguntaram, se seria possível buscar o nome da base (do SQL Server, Oracle, etc) configurada para uso no ERP.
Pensando nisso, montamos esse exemplo, onde demonstramos em como buscar essa informação dentro do AppServer.ini via AdvPL.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} zVid0107
Função demonstrando em como buscar o nome da base de dados
@type user function
@author Atilio
@since 22/01/2024
/*/
User Function zVid0107()
Local aArea := FWGetArea()
Local cNomeBase := ""
Local cStrError := "ERROR"
Local cPasso := "1"
Local cIniFile := GetAdv97()
/*
Passo 1 vai ser verificar se tem a seção DbAccess, que fica separado a informação do ambiente, exemplo (dentro do appserver.ini):
[DBAccess]
DataBase=MSSQL
Server=192.168.x.x
ALIAS=NOME_DA_BASE
Port=7890
*/
cNomeBase := GetPvProfString("DbAccess", "Alias", cStrError, cIniFile)
/*
Passo 2 se não encontrou ou deu erro, ai vamos buscar novamente mas agora ao invés de "DbAccess" vamos usar a seção "TopConnect"
*/
If Empty(cNomeBase) .Or. cNomeBase == cStrError
cNomeBase := GetPvProfString("TopConnect", "Alias", cStrError, cIniFile)
cPasso := "2"
EndIf
/*
Passo 3 se não encontrou ou deu erro, ai vamos buscar novamente mas agora ao invés de "TopConnect" vamos usar a seção "TotvsDBAccess"
*/
If Empty(cNomeBase) .Or. cNomeBase == cStrError
cNomeBase := GetPvProfString("TotvsDBAccess", "Alias", cStrError, cIniFile)
cPasso := "3"
EndIf
/*
Passo 4, se mesmo assim não encontrou, vamos buscar direto do ambiente
*/
If Empty(cNomeBase) .Or. cNomeBase == cStrError
cNomeBase := GetSrvProfString("DBAlias", cStrError)
cPasso := "4"
EndIf
//Mostra o nome encontrado
FWAlertInfo("Nome encontrado é: " + cNomeBase, "Passo " + cPasso)
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.