Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: A Arte (e Desafio) de Dialogar com a IA: Mais Inteligência, Menos "Burrice"?

_Créditos das imagens: ChatGPT (DALL·E) ** A Arte (e Desafio) de Dialogar com a IA: Mais Inteligência, Menos "Burrice"? Recentemente, me deparei com um exemplo fascinante da capacidade das IAs generativas: um prompt detalhado que resultou na criação de um jogo 3D de labirinto com um soldado (você pode ver a versão em português do prompt/projeto aqui: [naldodj-3DMazeGameWithSoldier](https://raw.githubusercontent.com/naldodj/naldodj-3DMazeGameWithSoldier/refs/heads/main/README.md), baseado no original de [@nobody_qwert no X](https://x.com/nobody_qwert/status/1893584330095509843)). O resultado é impressionante, mas o que realmente me chamou a atenção foi a **complexidade e o detalhamento do prompt** necessário para chegar lá. Isso ilustra perfeitamente um ponto crucial: fazer a IA gerar *exatamente* o que queremos, seja código complexo ou texto coeso e específico, não é trivial. Exige clareza, precisão, antecipação de ambiguidades e, muitas vezes, várias iterações. É a chamad...

BlackTDN :: SELECT * : Cadê o D_E_L_E_T_?

interrogação

Durante o processo de testes com TSQLite verifiquei algo, no mínimo, inusitado:

Por algum motivo SELECT * deixa de retornar a coluna D_E_L_E_T_. Pensei que o problema estava relacionado ao SQLite mas não, é genérico. A partir de alguma versão do dbAcces o campo D_E_L_E_T_ deixou de constar nas consultar retornadas pelo dbAccess. Para tirar a prova dos 9 acessei o MPSDU, Query Analyzer e SELECT * FROM <qualquer tabela> e, para espanto, todos os campos são retornados, exceto D_E_L_E_T_.

porquêDe fato. Não vejo o por que do campo D_E_L_E_T_ ser excluido das consultas com SELECT * FROM <table> ou SELECT <table>.D_E_L_E_T_ FROM <table>.

Para conseguir retornar o conteúdo da coluna D_E_L_E_T_ tem-se que apelidá-la (1).

 

Observe:

SELECT SRA.D_E_L_E_T_, SRA.* FROM SRA010 SRA; SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T, SRA.* FROM SRA010 SRA; SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_, SRA.* FROM SRA010 SRA;
SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_E, SRA.* FROM SRA010 SRA; SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_E_D, SRA.* FROM SRA010 SRA; SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_E_D_, SRA.* FROM SRA010 SRA;

Obtidos a partir de:

   1: SELECT SRA.D_E_L_E_T_, SRA.* FROM SRA010 SRA;
   2: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T, SRA.* FROM SRA010 SRA;
   3: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_, SRA.* FROM SRA010 SRA;
   4: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_E, SRA.* FROM SRA010 SRA;
   5: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_E_D, SRA.* FROM SRA010 SRA;
   6: SELECT SRA.D_E_L_E_T_ AS D_E_L_E_T_E_D_, SRA.* FROM SRA010 SRA;

 







Um fragmento do código do exemplo para teste da TSQLite reflete bem a afirmação em (1):


ADVPL Query String



   1: cQuery    := "SELECT "
   2: cQuery     += "    ( CASE WHEN SRA.D_E_L_E_T_ = '*' THEN 'T' ELSE 'F' END ) AS DELETED,"
   3: cQuery     += "    SRA.* "
   4: cQuery     += "FROM  "
   5: cQuery     += "    BTDN_SRA010 SRA;"





No exemplo usei DELETED como apelido, mas poderia ser D_E_L_E_T_E_D ou D_E_L_E_T_E_D_ ou ainda D_E_L_E_T_E, exceto D_E_L_E_T_.


[]s
иαldσ dj

Comentários

  1. PQP!

    Não é que é verdade. Testei com:

    SELECT SC1.D_E_L_E_T_, SC1.* FROM SC1010 SC1 WHERE C1_FILIAL = C1_FILIAL AND C1_EMISSAO >= '20120601'

    E cadê o D_E_L_E_T_?

    ResponderExcluir

Postar um comentário

Postagens mais visitadas