Ir ao conteúdo

joseph_dev

Membro Pleno
  • Posts

    108
  • Cadastrado em

  • Última visita

Tudo que joseph_dev postou

  1. A lentidão acontece em todas as máquinas? Nas telas em que tem consulta/operações ao banco? O sistema é instalado em cada máquina, é terminal service (RDP), apenas executável no server? Quem está distribuindo IP na rede (DHCP)? Está usando mais de uma vlan? Qual a faixa de ip que está usando aí? O ping do cliente ao server está estável (1ms)? O sistema funciona normalmente se executado diretamente no server?
  2. Cara, esse código foi todo copiado e colado?
  3. Chegou a testar algum desses convertedores online sugeridos pela busca do google? https://www.google.com/search?rlz=1C1GCEU_pt-PTBR900BR900&ei=9WWyX8yAI4m65OUPprqQoAU&q=transformar+SCSS+em+CSS&o que=transformar+SCSS+em+CSS&gs_lcp=CgZwc3ktYWIQAzICCAA6BAgAEEdQwOcNWKvpDWDb6w1oAHADeACAAZEBiAGLApIBAzAuMpgBAKABAaoBB2d3cy13aXrIAQjAAQE&sclient=psy-ab&ved=0ahUKEwiMz5mi_obtAhUJHbkGHSYdBFQQ4dUDCA0&uact=5
  4. 1- Confere os campos das tabelas fec e fec2 pois não conheço os campos delas. (Qual a diferença entre fechamento e fechamento2?) SELECT strftime('%m', fec.dataVenda), strftime('%Y', fec.dataVenda), sum(fec.venda_dia) FROM fechamento fec JOIN fechamento2 fec2 ON fec.id = fec2.id WHERE strftime('%Y%m', fec.dataVenda) = '202011' 2- Unifiquei as consultas 2 e 3 pois tem o mesmo filtro. select sum(pizzas), sum(esfihas) from fechamento where strftime('%Y%m', dataVenda) = '202011' Estou considerando que você está passando a data como "202011" (Mês 11 do ano 2020) como o extract retorna do mysql. Se não, é só mudar o formato da string do strftime.
  5. Cara, não sei se você vai conseguir fazer isso sem que o usuário interaja com a página. Mas você pode colocar um botão "Ativar Lembrete" para rodar essa função aí, forçando o usuário clicar nele ou pode colocar dentro de alguma função em que o usuário interaja. ativarLembrete = function(){ setTimeout(function(){ var audio = new Audio('alerta.mp3'); audio.addEventListener('canplaythrough', function() { audio.play(); ativarLembrete(); }); }, 7200000); } Já é um norte aí...
  6. Pelo que pude entender aí, esse trecho que monta os cards está gerando várias div com o mesmo id. A solução mais rápida eu acho que é: 1- Gerar um id dinâmico com o número do pedido (Acredito que sejam únicos). Concatenando a string "conteudo-" com o vnumeroPedido. 2- Mudar a função imprimir. Concatenando com o vnumeroPedido passado por parâmetro. 3- Atribuir a função imprimir no onclick do input já passando o vnumeroPedido. 1 <div class='card border-primary mb-2 mr-1 col-md-12' id='conteudo-'.$vnumeroPedido.'> ... 2 <script> imprimir = function(vnumeroPedido) { var conteudo = document.getElementById('conteudo-'+vnumeroPedido).innerHTML, tela_impressao = window.open('about:blank'); tela_impressao.document.write(conteudo); tela_impressao.window.print(); tela_impressao.window.close(); } </script> 3 <input type='button' value='Imprimir' class='btn btn-primary btn-md btn-block' onclick='imprimir($vnumeroPedido)' /> Só verifica a concatenação pois não tive como testar aqui. *No seu código, a linha que tem o button imprimir tem uma aspas sobrando perto de onde fecha a tag. Remove ela.
  7. Cadê o conteúdo da tag head? Será que não está faltando importar o arquivo jquery ou algum arquivo js desse framework? Posta essa página inteira aí. Com o html e javascript.
  8. Há uns 8 anos atrás fiz um chat desktop com java e usei Socket também. O funcionamento é bem parecido. O chat tem 2 versões. Uma versão server que instancia o socket (roda uma thread no pc) e outra versão cliente (bem mais simples). Para o usuário essa diferença é transparente pois eles tem a mesma interface e funcionalidades do chat. A versão server é que recebe todos os disparos dos clientes e faz o tratamento do que deve ser feito, para onde encaminhar, etc... Basta configurar o ip do server nos clientes. Ele é todo em java pois o java tem suporte a sockets. Como Gabriel sugeriu, o WebSocket é uma boa escolha nesse seu cenário. Lembrando que você vai precisar de um pc como servidor que pode ser até um dos pc participantes. Porém em relação a ser todo javascript, só se você usar nodejs no lado server do jogo. No seu caso, um dos pc tem que ter o server que é onde roda o código com toda regra de negócio do jogo (Ex: Recebe os disparos de todos participantes e faz os tratamentos, decide quem pode jogar na rodada, verificar se houve vencedor, atribuir pontuação, etc...) e ele ainda vai rodar o arquivo interface do jogo, Os demais pc vão rodar apenas o arquivo interface do jogo. Esse arquivo com a interface do jogo deve ter as regras de negócio de cliente (Ex: habilitar/desabilitar botão a depender do que o server entregar, enviar resposta da rodada para o server, exibir informações, etc...). O server pode rodar o nodejs, xamp, zender, wamp, etc, a depender da sua escolha. Caso você ainda não tenha visto, segue documentação da api: Server - https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers Cliente - https://developer.mozilla.org/pt-BR/docs/WebSockets/Escrevendo_aplicacoes_cliente_WebSocket
  9. Qual seu ambiente de desenvolvimento? Pretende fazer web, mobile, desktop? Você vai usar Nodejs, socket em java, requisições ajax? O jogo vai rodar numa rede local ou servidor web?
  10. Massa, Jefferson. Você já pegou o embalo. Só dá uma olhada nesse tanto de IFNULL. Será que são todos necessários mesmo? Valeu!
  11. Valeu, meu velho! Ainda bem que deu certo. Depois que você mandou o último código com os joins deu pra entender melhor os relacionamentos.
  12. Quando você usa o MAX() sem agrupar por algum campo (GROUP BY) automaticamente o mysql entende que você está agrupando no geral. Por isso só retorna o maior campo desse geral e agrupa todos os resultados em um. Pelos campos dessa consulta eu acredito que você precisa fazer um LEFT com vendascartao (já que ele pode retornar NULL): SELECT car.Codigo, MAX(Uid), MAX(Serial), MAX(ConvenioId), MAX(ConvenioNome), MAX(UtilizadorId), MAX(UtilizadorNome), MAX(car.CartaoNumero), MAX(Ativado), MAX(DtCadastro), MAX(DtUltPassagem), MAX(Historico), MAX(Senha), MAX(Bloqueado), MAX(VeiculoId), MAX(car.Placa), MAX(car.MarcaModelo), CONCAT(MAX(vei.AnoFab), "/",MAX(vei.AnoMod)) AS Ano, MAX(IFNULL(vca.VeiculoKM, KmInicial)) AS UltimoKM, /*se der erro tente assim: IFNULL(MAX(vca.VeiculoKM), MAX(KmInicial)) AS UltimoKM --não tive como testar*/ MAX(fun.Codigo) AS MotoristaCodigo, MAX(fun.Nome) AS MotoristaNome, MAX(fun.CPF) AS MotoristaCPF FROM cartoes car JOIN veiculos vei ON vei.Codigo = car.VeiculoId JOIN funcionarios fun ON fun.Codigo = vei.MotoristaCodigo LEFT JOIN vendascartao vca ON vca.VeiculoCodigo = car.VeiculoId GROUP BY car.Codigo Só tem que ver os campos do agrupador pois não sei a definição de sua consulta e nem o seu modelo... Estou sugerindo pelo que pude analisar no seu código. Nesse caso aí ele vai agrupar por cada cartão e vai trazer os campos do cartão, o carro utilizado, o funcionário cadastrado e vai trazer o maior registro VeiculoKm da vendascartao caso tenha algum. *Quando você usa o GROUP BY, para todos os campos que não estão no agrupador (na linha GROUP BY) você precisa usar o MAX() ou MIN() ou até AVG(), SUM(), etc, a depender de sua necessidade, é claro. Na maioria das vezes o MAX() é usado pois o campo vai ter o mesmo valor no agrupamento. *Eu não consegui identificar a tabela de cada campo no select. Depois coloque o alias de cada tabela em cada campo. É uma boa prática. Ex: Para campos da tabela cartoes o alias está car (eu defini aí mas você escolhe). Para campos da tabela funcionarios o alias está fun (eu defini aí mas você escolhe). Logo, no select, eu faço a seguinte referência: SELECT car.codigo, car.descricao, fun.codigo, fun.nome ... FROM cartoes car JOIN funcionarios fun ON fun.codigo = car.codfuncionario WHERE car.codigo = 10 *Não sei qual a versão do seu MYSQL, mas dê preferência em usar caixa alta (maiúsculas) pelo menos nas palavras reservadas do SQL. Nos campos das tabelas, use como está definido no banco (maiúscula ou minúscula). Se não funcionar de primeira eu acredito que com um pequeno ajuste ao seu modelo já funcione.
  13. Não tem muito sentido você criar uma função para retornar apenas selects sem nenhuma operação. O certo seria fazer os relacionamentos corretos e reduzir o número de subSelects. Aí sim você vai otimizar seu código. Ou você pode fazer cada consulta separada no código de seu sistema (cada uma com sua respectiva clausula where). Eu acredito que ainda sairá mais rápido do que criar pencas de subSelects aleatórios. Aí você vai atribuindo às variáveis na sua regra de negócio. Acho esse armengue o menos ruim.
  14. Ah, lembre de colocar o atributo download: <a href="arquivos/caminho/arquivo.pdf" download>Arquivo Anexado<a/>
  15. Cara, sem o modelo do seu banco para ver os relacionamentos fica difícil. Mas já te adianto que o motivo dessa lentidão é a grande quantidade de subselects. Tem que ver quais dados você precisa realmente nessa consulta, pois me parece ter algumas subconsultas sem relação. Talvez até uma VIEW seja melhor nessa situação.
  16. Eu acho que agora entendi. Rsrs Você quer visualizar uma prévia ou basta o arquivo para a pessoa baixar? Se for apenas o arquivo para a pessoa baixar, você coloca o caminho relativo do arquivo como um link. Ex: <a href="arquivos/caminho/arquivo.pdf">Arquivo Anexado<a/> *A depender do local do arquivo você vai precisar usar ../ ou ./ para voltar diretórios até chegar na raiz ou próximo do local do arquivo. você tem os nomes dos arquivos no banco?
  17. Atualize esse estilo e veja se atende: li a { text-decoration:none; color:#FFF; background-color:#09C; margin-bottom:1px; padding:5px; }
  18. Mude o charset para uft-8. A tag ficará assim: <meta charset="utf-8">
  19. Eu copiei seu código e rodei aqui. Funcionou normalmente no Chrome. Será que foi cache no momento do seu teste? *Desconsidere os caracteres. Não mudei o charset.
  20. Se não for a fonte (você disse que é nova) pode ser o processador esquentando. Quando você abre certos programas pesados acaba esquentando muito e ele reinicia. O ideal seria limpar a pasta térmica dele e colocar nova para certificar.
  21. Poderia explicar melhor?
  22. Mude o método html() por val() no trecho do switch: switch (true) { case (cargaAlar <= 1.1): $(".experiencia").val("Iniciante"); break; case (cargaAlar > 1.1 && cargaAlar <= 1.3): $(".experiencia").val("Intermediário"); break; case (cargaAlar > 1.3 && cargaAlar <= 1.5): $(".experiencia").val("Avançado"); break; case (cargaAlar > 1.5): $(".experiencia").val("Experiente"); break; default: console.log('Desculpe, houve erro no cálculo, tente novamente.'); }
  23. Será esse "var rel = rel" logo após o for? Muda o nome dessa variável pois já tem uma variável declarada no for.
  24. Se for só em HTML, você pode colocar o elemento html que você quer o foco no fim da página e depois colocar o id dele na url dessa forma: meusite.com.br/#id_elemento
  25. SELECT valida_cpf_cnpj('999999999') FROM dual

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...