Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: SQL e a Teoria de Conjuntos

_Créditos das imagens: Grok ### 🚀 Você sabia? SQL e a Teoria de Conjuntos estão mais conectados do que imagina! A linguagem SQL (Structured Query Language) tem suas raízes na teoria de conjuntos, um conceito matemático que trata de coleções de objetos. Em bancos de dados relacionais, cada tabela é um conjunto de linhas (ou tuplas), e operações como SELECT, JOIN, UNION e INTERSECT são inspiradas em operações como união (∪), interseção (∩) e diferença (-). Vamos explorar como isso funciona? 👇 --- ### 🔍 Principais Operações de Conjuntos no SQL Imagine duas tabelas simples: Clientes (Conjunto A): ``` +----+-------+ | ID | Nome | +----+-------+ | 1 | Ana | | 2 | João | | 3 | Maria | +----+-------+ ``` Pedidos (Conjunto B): ``` +----+-----------+ | ID | Cliente_ID| +----+-----------+ | 1 | 1 | | 2 | 2 | | 3 | 1 | +----+-----------+ ``` #### 1. União (UNION) - O que faz: Junta tudo de A e B, sem duplicatas (A ∪ B). - Exemplo: ```sql SELECT id FROM cli...

BlackTDN :: Alterando o dicionário :: ON FLIGHT

 

images

 

Alguém aí arriscaria trocar a asa de um avião em pleno voô?
Pelo menos alguém em sua sã consciência nao faria isso.. e os loucos?

 

Realizando uma comparação ao fato acima, eis a porta aberta para alterações no dicionario em tempo de execução através do antigo e 'usual' campo formulas.

 

Participando de um projeto.. updates para lá, updates para cá.. então surge a necessidade de se fazer uma alteração na SX3, mas o acesso ao CFG é restrito ao pessoal da TI. Então testamos essa alteração usando o campo formulas, e para a surpresa de todos, foi possível alterar uma propriedade do dicionário, tornando um campo anteriormente como [V]isual para [A]lterável.

A sequencia de operações a ser seguida é:

  • Posiciona na tabela SX3 para o campo a ser alterado.
    MSGINFO(POSICIONE('SX3',2,'A1_NOME','X3_VISUAL'))

FORM1

  • Realiza o lock da tabela e exibe se conseguiu ou não.
    MSGINFO(CVALTOCHAR(RECLOCK('SX3')))

FORM2

  • Define o novo valor ao campo da X3
    SX3->X3_VISUAL := 'A' (importante usar o alias da tabela)

FORM3

  • Libera o lock realizado.
    DBUNLOCKALL()

FORM4

  • Veja que o campo que antes era V-Visual passou a ser A-Alterado.
    MSGINFO(POSICIONE('SX3',2,'A1_NOME','X3_VISUAL'))

FORM5

* A operação apresentada é bem sucedida para alterações que não são transportadas para o banco de dados.

** No projeto não adotamos essa solução para alteração! Foi um pensamento louco que acabou revelando essa falha, espero que a detentora do Produto tome as devidas providências em tempo.

[]’s,
OBona,

Comentários

  1. Eu fiz parte dessa manobra e vi ela funcionando. Muito bom! Não é à toa que essa cara, oBona, é considerado um dos MAIORES THE WORLD CHAMPIONS!!! Valeu Bona por mais uma força! Abs.

    ResponderExcluir
  2. A totvs já tomou providencias para esse tipo de situação, existe um parametro que desabilita execuções via "fórmulas", gambiarra das mais toscas, como de costume.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas