@GuilhermeNascimento Tenho acesso a aplicação, mas nada de alterar, consultar, etc... só consigo "usar"... e o objetivo é clicar em 1 botão, e ver quais alterações em quais tabelas/colunas aquela ação específica do sistema fez...
Trigger eu sei bem pouco... teria que fazer 1 por tabela, não é ?
@rbz tá, tabela com timestamp, mas ai vc vai ter que escrever a aplicação que vai identificar essa diferença e vai ter que tacar um trigger para atualizar a coluna sem precisar mexer na aplicação principal
@GuilhermeNascimento O que for mais fácil, tranquilo! porque só de apontar quais tabelas foram alteradas, mesmo que não fale qual as colunas, aí é só eu repetir o processo, olhar o antes e depois....
@rbz Vc entende agora que o problema todo não é BANCO DE DADOS, o problema é como vai passar isso como notificação, é uma questão totalmente de planejamento, exatamente como eu disse no começo de tudo :/
@rbz bem, se é só pra olhar (o que não é fácil de olhar, ainda mais 102 tabelas) seria um trigger mesmo que popularia uma nova tabela, como se fosse um log ... de resto é RELATIVO, depende do que vc quer de fato, depende do que vc tem
@GuilhermeNascimento Eu quero 1. clicar no botão 2. saber quais tabelas foram alteradas. só... porque aí eu faço um select antes, executo, e vejo campo a campo que foi alterado...
@rbz notificar e saber é a mesma coisa, é um termo, de alguma forma vc tem que saber o que foi modificado, a coisa ai tá confusa sem precisar ... é simples, vc quer olhar em algum lugar o que foi modificado, otimo, mas vc vai precisar de triggers e ponto e vai precisar definir AONDE isso será salvo
@GuilhermeNascimento Discordo! rs Você disse que precisa saber da aplicação, e não... se eu tenho acesso ao banco, por trigger seria uma opção, mas teria que fazer nas 102 tabelas
Se pegou coisa maliciosa, não adianta remover que vai pegar de novo. Isso é falha de configuração ou de atualização de segurança (coisa muito comum em Wordpress, por sinal). De qq forma, seria o caso de postar a dúvida num site de suporte, nosso escopo é apenas programação. — Bacco48 secs ago
@rbz não estou sendo grosseiro, mas vou dizer uma coisa sobre isso: uma coisa é discordar, outra coisa é entender (ou não entender). Mas blz, quem sabe sai uma solução ai :) ... nos avise
Cade o carinha lá das centenas de e-commerce, que mandou o Maniero trabalhar em vez de ficar 'no fórum'? De repente ele pode ajudar o colega aí. Parece do mesmo naipe.
Então não estamos na mesma linha de pensamento... Porque eu preciso ter acesso a aplicação se tenho acesso ao banco e preciso exatamente saber o que altera no banco? Vamos supor que o banco tem 3 tabelas Vou na aplicação, altero um nome de um registro de pessoa, e clico em salvar
Se eu dei um select antes na tabela pessoa, e depois de salvar (na aplicação) der novamente outro select, já vi que ele alterar o campo X da tabela pessoa...
Então, a tabela pessoa foi alterada...
Com trigger resolveria, sem acesso algum a aplicação, porque não tem nada errado, nem nada a ser alterado na aplicação... entende?
Mas teria que fazer 102 trigger... isso é, se não existe 1 trigger para o banco todo
Estou estudando a respeito de filas no Python e estou usando o objeto deque do módulo collections.
Assim sendo, no Python eu posso acessar os valores de um array pelo índice simplesmente escrevendo:
array = [1, 2, 3]
arra[0] # 1
No entanto, o objeto deque também permite que eu acesse os valor...
@rbz sim, isso tudo eu já entendi :P ... a questão mesmo é outra coisa, mas vamos ficar aqui nesse impasse sem necessidade, vou logo ao ponto, sim tem como configurar um trigger (multiplos na verdade) para todas tabelas, basta fazer um SELECT no "sys.tables", mas ai se sobrar tempo formulo como resposta ... de qualquer forma isso deve adiantar algo:
I have a column LastUpdate in all tables of my database and I want to say "on insert of update LastUpdate = getdate()"
I can do this with a trigger but I find it' hard to write hundreds triggers for each table of the database.
- How do I dynamically create a trigger that affect all tables?
- Ho...
@rbz Eu trabalho com sistema da área da saúde (sim por isso que a saúde ta uma merda no Brasil AHSDUAHSU) enfim... as tabelas aqui tem uma redundância exemplo: Tabela "ValorProcedimento", Tabela "ValorProcedimentoLog".
@Bacco a resposta para isso seria: contrate um profissional - :P
> Quando acedo ao meu website sou redirecionado para várias páginas de spam... Existe algum plugin que posso utilizar para remover código malicioso? Que alternativas tenho para resolver este problema?
O que já tenho é a listagem de tabelas que o sistema tem:
SELECT SCHEMA_NAME(T.SCHEMA_ID) + '.' + T.NAME AS NOMETABELA, P.ROWS AS QTDELINHAS FROM SYS.TABLES T INNER JOIN SYS.PARTITIONS P ON (P.OBJECT_ID = T.OBJECT_ID AND INDEX_ID < 2) ORDER BY QTDELINHAS DESC
@CaiqueRomero Então, não precisaria nem ser por tabela, só precisava do nome das que foram alteradas da hora que eu quero até a hora que terminou a execução da aplicação... seria o caso da trigger
Pode usar o CONCAT, gerando uma query para cada table_name:
SELECT
CONCAT( 'ALTER TABLE ', table_name, ' ALTER COLUMN REV smallint;') AS linha
FROM
information_schema.columns
WHERE
table_name LIKE '%_AUD' AND column_name = 'REVTYPE'
GROUP BY
table_name
O CONCAT está disponível no ...
Gente, email é HTML4; qq coisa que inventar muito fora disso vai ficar ruim em bastante lugar. Tem muita coisa que aceita técnica nova, mas tem MUUUUITA que não. Principalmente cliente desktop
@JoanMarcos o velho e feio <table> ainda é o jeito mais eficaz, tenta não usar CSS. Depois de pronto o layout, usa CSS inline só, pra dar uma arredondadinha nas coisas etc
Seletor +
div + p {
font-size: 20px;
}
<div>
</div>
<p>Este é um paragrafo</p>
<p>Este é outro paragrafo</p>
Pega o primeiro elemento encontrado após sua declaração.
Seletor ~
div ~ p {
font-size: 20px;
}
<div>
</div>
<p>Este é um paragrafo</p>
<p>Este é outr...
tipo, o "humor" não compensou a polêmica. Tipo empurrar velha da fila de ônibus pra entrar na frente, mas ficar em pé no corredor. Se fosse pra sentar no banco ainda entendo (mesmo desaprovando), mas comprar confusão pra ficar em pé...
@Bacco eu estou me sentido tentado a fazer um fake e sair espalhando falsa notícia de politicos, pra pegar esse povo desinformado que sai compartilhando tudo, hahahahaha
@WallaceMaxters ps, acho que antigamente não existia retweet, ai as pessoas escreviam "RT @nomedousuario", que nada mais que era compartilhar a mensagem de outra pessoa, mas posso ter me confundido também :P .... cheguei tarde no twitter
@WallaceMaxters inelegibilidade é independente da decisão, a lei já determina. O que foi julgado é se ele podia ser candidato. Na verdade vivemos um momento de zorra total jurídica, onde se inventam mil interpretações (acompanhadas de longas explicações pra justificar o injustificavel). Resumindo: "tamo na roça".
em um mundo normal não aplaudiríamos gente honesta, pq não seria necessário, já que honestidade seria algo comum ... ao contrário, daríamos atenção aos "corruptos", deixaríamos esses em evidencia
O Alckmin se for pra segundo turno, seja com quem for, ou eu voto no outro ou eu anulo (ainda tou em duvida dependendo do caso). Mas não existe cenário que o voto vá pro Alckmin. Seria o mesmo que eu dizer "aceito ser trouxa, assumidamente". Em outro eu posso ser trouxa por engano, mas no Alckmin eu estaria sendo trouxa sabendo.
Ironicamente a ultima campanha que eu fiz a parte de vídeo era pro PSDB, e por incrivel que pareça ainda foi um pouco de exceção. Até que naquele caso eu realmente votaria no candidato (em vista das outras opções) mas era pra prefeito. Mas... exceção não muda a regra.
@GuilhermeNascimento a corrupção nas prefeituras me parece maior do que a de brasília, em termos de "enraizamento".
> Você pede para exportar as notas fiscais do mês de agosto... > Aplicação responde: hey, são muitas notas, qual e-mail posso te mandar quando estiver pronto? > Você informa um e-mail... > Solicitação de exportação realizada com sucesso > Você aguarda o e-mail... > Você ainda aguarda o e-mail... > 2h depois você resolve tentar de novo, com outro e-mail, mas percebe que o e-mail não é mais enviado > Agora a aplicação exibe na tela um histórico das exportações e a sua está concluída > Você repara que há um botão: Enviar e-mail
@AndersonCarlosWoss kkkkkkkkkkkkkkk igual o programa de NoBreak da Lacerda - vc instala, ele cria um "serviço" em Java, com icone no tray. Ai vc vai acessar a visualização, abre o browser com a aplicação em FLASH!!!! que se comunica com o java. 300 camadas pra conversar com uma interface FTDI, serialzinha besta.
@Blogueira pq ele diz o treco, mas diz que o problema é maior e nao pode usar array. Sem explicar, dificil cercar a maneira correta de responder. Isso tudo considerando que já foram dadas respostas com a criação dinâmica, claro. Sem solução ele não fica.
@Blogueira até pq se for só isso eu tenho uma convicção que ja tem no site;
@Blogueira lembrando: fechamento não é condenação, normalmente o "não clara" é "dá uma explicada melhor, pq ja tem 3 respostas e nao sabemos ainda se é isso que vc quer"
Se fosse fora de escopo, erro de digitação etc concordo que seria injusto
@Bacco que é absurdo, porque o problema de todo mundo que vem perguntar aqui é maior - o cara disse o que queria "variaveis criadas dinamicamente", fez um pseudo código mostrando o que queria e deu exemplos do resultado - eu não consigo imaginar nada mais claro que isso cc @LeandroAngelo
Vc disse isso: "e esse fosse o motivo para manter a pergunta fechada, imagino que quem fechou teria pedido esse esclarecimento ao invés de fechar"
Só que olhe o que tem no quadro amarelo: "Esclareça seu problema específico ou acrescente outros detalhes para destacar exatamente o que precisa. Do modo como está escrito aqui, é difícil saber exatamente o que você está perguntando. "
o fechamento por "Não clara" é só isso, um pedido de explicação antes que comece a aparecer um monte de coisa
Agora, se vc me disser que o quadro amarelo é feio e podia ser melhor elaborado, 100% de acordo
Eu já tinha sugerido pra mudar de "fechada" para "aguardando o autor" ou coisa do tipo.
@Blogueira possível solução: o autor dizer "não, o que eu queria é só saber da variável mesmo, que é o que responderam", ai a gente tira todo supérfluo (a parte do problema bem maior e outros ruidos) e reabre.
@Blogueira só uma coisa: tou dizendo como eu vejo, mas sem a minima pretensão de te convencer disso. Creio que vc tem sua razão pra pensar diferente e provavelmente válida.
Eduardo Roberto Ferreira, note que o fechamento não é "repúdio" à sua questão, simplesmente ficou uma dúvida se o problema é só a "variável variável" ou tem mais requisitos que vc não disse, e essa "pausa" é pra esclarecer antes que apareça mais uma série de respostas que não resolve. Se puder se manifestar, pode ser que consigamos ajudar tanto com a solução quanto com a edição da pergunta. — Bacco13 secs ago
@AndersonCarlosWoss eu sou inscrito no MEI, mas praticamente nao uso. Tem uma pauta no senado pra ver se aceitam desenvolvimento de sistema no MEI, mas tá paradão
@AndersonCarlosWoss até já deixei tudo meio que preparado pra quando vier ao caso eu mudar de enquadramento, pq dependendo da atividade nem no simples dá.
@AndersonCarlosWoss contador é outra que tiraram do Mei, mas tão tentando "reabilitar".
@AndersonCarlosWoss vai ter que prestar serviço como técnico. Programação nao rola. Mas, é questão de ego só. Na prática ele tá é fazendo o que todo mundo faz, com "Funcionário empresa".
@AndersonCarlosWoss se fosse ver ao pé da letra, seria uma irregularidade fiscal né. Vc ter um MEI de uma coisa que nao é o que vc faz, pra nao pagar o imposto correto do seu ramo. Mas ai o teria que ver com o Sr Ander. (vc é o Ander' son, então o Sr Ander é o pai?)
Eduardo, isso não parece fazer sentido. Um array resolveria o problema, ou uma outra estrutura de dados. A escolha certa da estrutura de dados que vai usar é o que vai determinar o sucesso da solução. Ainda mais que você nem contextualizou na pergunta o problema que te levou a pensar dessa forma, criar as variáveis dessa maneira, e mesmo que tenha esse não é o caminho, pode te atrapalhar no futuro. E você tem que considerar o escopo da variável também e certamente não é possível fazer isso em JavaScript, pelo menos não da forma que você imagina. — gato20 secs ago
@AndersonCarlosWoss eu acho que ele ta mais apto. De qq forma a resposta é "é um errado que ninguem nunca vai ver provavelmente, e todo mundo faz". Pq na pratica ninguem vai olhar se vc tá fazendo o que tá no seu rol de atividades de fato.
@AndersonCarlosWoss Atualmente eu tenho clientes que "me contratam pra fazer um sistema de SAT pra empresa", ai a softhouse é a empresa. Eu licencio o soft principal, mas o módulo de SAT "é feito dentro da empresa, sob encomenda"
@AndersonCarlosWoss até te adianto que o problema é que a classificação do programador tem um "depende do tipo especifico de atividade" que nao se acha em lugar nenhum qual que pode e qual que não. Cai sempre no "no simples vc pode realizar apenas algumas das atividades". TÁ, MAS QUAIS???
Toda pergunta fechada com uma duplicata do mesmo AP deveria exibir um popup com um tutorial dizendo "não duplique perguntas pelos seguintes motivos" :P
@ninguém entao, e ficar criando novas é uma maneira de contornar o bloqueio, ou seja, irregular. Vc deu sorte do pessoal da SE ser "mole", por assim dizer.
@Bacco cara eu só quero quero contribuir com a comunidade positivamente, mas deram downvote na pergunta e nao me dizem como melhorar, o que posso fazer?
@ninguém voltar lá nas primeiras e começar a levar a sério os comentários da galera e os links recomendados. Simplesmente vc enche a pergunta de coisa, e vai mudando o problema nos comentários. O problema verdadeiro é que vc tá se metendo a fazer coisa complicada demais pro seu conhecimento.
Tinha que estudar um pouco mais do básico do PHP antes. Tipo, as coisas que vc pergunta são coisas que se tivesse treinado com coisa simples lendo o manual, já saberia. Mas vc quer fazer um treco mais complexo sem saber o básico, ai fica essa situação complicada.
Por mais que o pessoal tenha boa vontade, seus posts ficam muito confusos. Ai é normal que a repercussão seja ruim.
Eu acho que o melhor seria vc exercitar um pouco as coisas separadamente, aprender a usar foreach, aprender a misturar HTML com PHP, mas separadamente.
Depois que entender cada parte, e dominar bem, aí mistura tudo no código final.
No caso lá da pergunta, arranque todo HTML e faça só a parte do DB dando echo nas coisas que vc quer.
Depois que conseguir, ai vc poe o HTML.
Se vc não consegue um foreach($array as $variavel) {echo $variavel[]...} até o resultado sair certo na tela, nem adianta por HTML no meio.
Entao aprenda a mostrar tudo sem formatação antes, faça testes, etc.
@Bacco Eu já consigo usar os dados do meu registro no meu HTML. Mas o foreach seleciona sozinho a coluna que vai usar no meu <?php echo $pl['title']?> e que no caso seria a ultma. Acho que o problema está ai, eu tenho que especificar no foreach como buscar os dados do BD, e colocalos no meu HTML de acordo com o mais recente ou pelo ID
@AndersonCarlosWoss De vez em quando eu sempre entro no chat
@AndersonCarlosWoss beleza. De qq forma, eu já tava meio conformado faz um tempo com sair até do simples, mas por ora não posso arcar com o custo. Quando o enlatado estiver pronto, ai eu faço o "pulo do gato". Note que nem falei de sair do MEI, falo de sair do Simples mesmo
@ThiagoLuizS eu não discordo da sua edição, mas o "..." não tem muita necessidade, quem entende o básico de python entende que a indentação é "natural" para ele, a adição da tag python foi um bom detalhe, ajuda muito quem segue a tag