Atualizando uma tabela através da X31UpdTable – Maratona AdvPL e TL++ 539

Nesse vídeo demonstraremos a utilização da função X31UpdTable, que serve para atualizar uma tabela no banco de dados, como por exemplo, criar ou atualizar campos manualmente via APSDU e depois efetivar via AdvPL (a partir da 2210 é exibido uma mensagem que em breve esse recurso será descontinuado).

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe539
Atualiza uma tabela no SQL conforme as alterações nos dicionários (SX2, SX3 e SIX)
@type Function
@author Atilio
@since 07/04/2023
@obs 

    Função X31UpdTable
    Parâmetros
        Recebe o alias a ser atualizado
    Retorno
        Função não tem retorno



    A partir da LIB 20221010_P12, é exibido uma mensagem de que essa função será descontinuada em breve
    Saiba mais em: https://tdn.totvs.com/pages/releaseview.action?pageId=698632582


    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe539()
    Local aArea      := FWGetArea()
    Local cTabAlias  := ""

    //Abre um input pro usuário digitar a tabela
    cTabAlias := FWInputBox("Insira o alias da tabela")
    cTabAlias := Alltrim(cTabAlias)

    //Caso a variável foi preenchida, seja tamanho 3 e exista no dicionário, ai prossegue
    If ! Empty(cTabAlias) .And. Len(cTabAlias) == 3 .And. ExisteSX2(cTabAlias)

        //Limpa as mensagens que haja em memória do X31
        __SetX31Mode(.F.)

        //Tenta executar a atualização da tabela (criação e alteração de índices e campos)
        X31UpdTable(cTabAlias)

        //Se houve algum erro, mostra mensagem
        If __GetX31Error()
            ShowLog("Houve um erro na atualização da tabela '" + cTabAlias + "':" + CRLF + CRLF + __GetX31Trace())
        Else
            FWAlertSuccess("Sucesso na atualização da tabela '" + cTabAlias + "'", "Sucesso")
        EndIf

    EndIf

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação