Desenvolvedor e Analista de Sistemas | IFPA

domingo, 22 de novembro de 2015

Travamentos após atualização do Windows 10 Threshold 2 - Dicas

com 0 Comentário

Se o comportamento persistir após atualizar os drivers, desabilite todos os programas de terceiros, ou seja, uma Inicialização limpa, para verificar se algum dos programas instalado em seu computador possa estar provocando esse comportamento.

Siga as etapas abaixo para solucionar esse comportamento.

Etapa 1

Caso tenha um antivírus instalado ou mais de um, sugiro que desinstale pelo Painel de Controle no ícone Programas e Recursos ou desabilite temporariamente pelas configurações do próprio antivírus.

Nota: Muitos antivírus possuem uma ferramenta própria de remoção. Acesse o site do Software instalado para mais informações. Seu sistema não ficará desprotegido pois o Windows tem um sistema de segurança próprio que habilita automaticamente assim que reiniciar o computador.

Etapa 2

Desabilite todos os programas de terceiros, ou seja, uma Inicialização limpa, para verificar se algum dos programas instalado em seu computador possa estar provocando esse comportamento.

Para inicialização limpa siga os passos abaixo:

Na Área de Trabalho, pressione simultaneamente as teclas Windows + R para abrir o Executar;
No Executar digite MSCONFIG e clique em OK para abrir a Configuração do Sistema;
Na guia Serviços, assinale a opção Ocultar todos serviços Microsoft e clique em Desativar Tudo;
Clique em Aplicar e em OK;
Reinicie o computador.

NOTA: Este procedimento desabilita todos serviços e programas de terceiros. Você pode posteriormente, se o problema for solucionado desta forma, habilitar os programas e serviços que serão inicializados com o Windows, seletivamente, ao invés de manter todos desativados. Se o problema voltar após ativação da inicialização de um serviço ou programa em especifico, o problema está exatamente na inicialização deste software e é recomendável removê-lo.

Etapa 3
Execute ferramentas de reparação Dism e Scannow.
Essas são ferramentas de diagnóstico e auxiliam no reparo da imagem do sistema.

Pressione as teclas Windows + X, selecione Prompt de comando (Admin), copie e cole os comandos abaixo e pressione enter depois de cada comando.

Sfc /ScanNow
Dism /Online /Cleanup-image /RestoreHealth


Teste e veja se o comportamento se repete, caso o comportamento continue execute o próximo procedimento.

Etapa 4

Para criar uma unidade de recuperação USB

Realize o Download do Windows 10 em outro computador espete um Pendrive no computador, abra o prompt de comando como administrador e execute os procedimentos abaixo:
  • Diskpart 
  • List disk 
  • Select disk 1 
  • Clean 
  • Create partition primary 
  • List partition 
  • Active 
  • Format fs=NTFS quick 
  • Assign 

Copie arquivos da imagem do Windows 10 para pen drive bootavel.
  1. Insira o disco de instalação do Windows. Reinicie o computador e preste atenção na tela para fazer boot do CD. Quando solicitado, pressione qualquer tecla.
  2. Após clicar em qualquer tecla, como solicitado no passo anterior, deverá chegar a tela de Instalação do Windows. Clique em "Reparar Computador"
  3. Você será direcionado a tela "Opções de Recuperação do Sistema". Basta selecionar o idioma e clicar em "avançar". Siga a partir do Passo 3, solicitando a correção de inicialização
  4. O computador mostrará uma tela com os erros de sistema recuperados. Após isso, basta reiniciar. 
Boa sorte!
Mais informações »

terça-feira, 3 de novembro de 2015

Colocando o GlassFish como Serviço do Windows

com 0 Comentário
Estarei dando a dica de como instalar o glassfish como serviço do windows.
Após o glassfish ter sido instalado, vamos executar alguns passos.
Abra o prompt de comados e informe o seguinte comando:
1
C:\glassfishv3\bin> asadmin create-service domain1
Onde “C:\glassfishv3\bin” é o caminho da pasta de binários do glassfish, “asadmin” é um comando de administração, “create-service” a sintaxe para criação do serviço e “domain1” é o nome do domínio existente na pasta domains. Para inicializá-lo, basta ir ao “painel de controle/ferramentas administrativas/serviços” e procurar algo como “domain1 glassfish service”. Geralmente é o nome que o sistema gera. Clicar em Iniciar.
Para remoção do serviço, você deve ir ao “painel de controle/ferramentas administrativas/serviços”, parar o serviço criado, provavelmente como “domain1 glassfish service”. Abrir o prompt de comandos do windows e informar o seguinte comando:
1
sc delete nome_do_serviço
Espero ter ajudado. Isso é bastante útil para deixar o serviço rodando na inicialização do sistema no caso de utilizá-lo em ambiente de produção.
Mais informações »

quarta-feira, 15 de julho de 2015

JTable com alturas de linhas de acordo como tamanho do texto/conteúdo | JAVA

com 7 Comentários
Configurando a linha da JTable para ficar semelhante a quebra de texto do EXCEL, aumentando o tamanho da linha de acordo com o tamanho do texto:

Exemplo de Tabela 


  1. public class TextAreaCellRenderer extends JTextArea implements TableCellRenderer {  
  2.   
  3.         public TextAreaCellRenderer() {  
  4.   
  5.             setLineWrap(true);  
  6.             setWrapStyleWord(true);  
  7.             setFont(new java.awt.Font("Tahoma"011)); // NOI18N  
  8.             setMargin(new java.awt.Insets(5555));  
  9.         }  
  10.   
  11.         @Override  
  12.         public Component getTableCellRendererComponent(  
  13.                 JTable table, Object value, boolean isSelected, boolean hasFocus, introw, int column) {  
  14.   
  15.             // set color & border here                
  16.             this.setText(value.toString());  
  17.   
  18.             setText((value == null) ? "" : value.toString());  
  19.             setSize(table.getColumnModel().getColumn(column).getWidth(),  
  20.                     getPreferredSize().height);  
  21.   
  22.             if (table.getRowHeight(row) < getPreferredSize().height) {  
  23.                 table.setRowHeight(row, getPreferredSize().height );  
  24.             }  
  25.   
  26.             return this;  
  27.         }  
  28.     }  

Para adicionar na tabela utilize o seguinte código:
  1. for (int i = 0; i < jTable.getColumnCount(); i++) {  
  2.             col = jTable.getColumnModel().getColumn(i);  
  3.             col.setCellRenderer(new TextAreaCellRenderer());  
  4.         }  

Mais informações »

terça-feira, 14 de julho de 2015

Importar banco de dados no MySQL pelo prompt do DOS

com 0 Comentário
Uma das coisas que me deixa mais tranqüilo para programar é criar um ambiente de testes na minha própria máquina ou em um servidor local.
Com essa prática não temos o risco de causar problemas nos sites que os usuários finais utilizam.
Para copiar os arquivos que estão sendo utilizado online basta utilizar um programa de FTP, porém para copiarmos os dados de um banco de dados precisamos fazer o back-up e então importar esse arquivo. Gosto muito da praticidade do phpMyAdmin, além dele ser amplamente utilizado nos painéis de gerenciamento (CPanel, Plesk etc).
Um grande problema é quando precisamos importar arquivos muito grandes, o que demanda maior processamento e as vezes acaba demorando mais do que nossa paciência agüenta! Por isso gostaria de compartilhar uma prática que utilizo nesses casos.
Ao invés de importar diretamente pelo phpMyAdmin, faço a importação via command prompt do Windows (isso mesmo DOS).
Vou listar os passos para essa operação de importação do banco de dados via prompt de comando do Windows.
Utilizo na minha máquina Windows XP com o XAMPP, conforme instalação no post sobre servidores (veja aqui).
1) Iniciar > Executar > cmd
Isso server para abrir o terminal. Outro modo é abrir o programa diretamente pelo seu executável, o caminho dele normalmente é c:\WINDOWS\system32\cmd.exe
2) Digite o comando: c:\xampp\mysql\bin
Isso vai te levar para o diretório local de instalação do MySQL.
3) Digite o comando: mysql -u root -p
Isso vai iniciar o MySQL, a seguir você deve digitar a senha de administrador (root) do banco de dados.
4) Se estiver tudo correto vai aparecer no prompt algo assim: mysql>
Dentro do prompt você pode utilizar os mesmos comandos que utiliza na programação, como por exemplo:show databases;
Uma dica valiosa é o comando para alteração do charset, muitas vezes você vai importar o SQL e a acentuação ficará com problemas para resolver essa questão utilize o comando: mysql> charset utf8;
Para concluir a importação você precisa selecionar o banco de dados desejado e dar o comando para importação, são os seguintes:
mysql> use nomedo_db;
mysql> source d:/nomedoarquivo_db.sql;
Com essas operações você consegue importar um arquivo grande em poucos segundos. Importante lembrar que você utilize a opção DROP TABLE quando for fazer a exportação, assim as tabelas ficarão exatamente ao que está online.
Mais informações »

terça-feira, 23 de junho de 2015

Como remover/excluir os drivers da impressora no Windows 7, 8, 8.1 e Windows Server 2008

com 0 Comentário
Use o seguinte comando para abrir o gerenciador de drivers de impressoras (printer) no Windows 7 / 8, 8.1 e Windows server 2008.

Digite/execute: printui /s /t2

Pronto, abrirá uma janela com os drivers instalados... selecione remova ;)

Mais informações »

domingo, 14 de junho de 2015

Consultar tamanho de string no bando de dados MySQL

com 0 Comentário

Existem várias funções no MySQL para extrair texto, trabalhar posicionamento, calcular tamanho entre outras. Neste post vou demonstrar como utilizar a funlção LENGTH().
A função LENGTH() no MySQL retorna o tamanho de uma string em bytes. A função pode ser substituida pela função CHAR_LENGTH() se quiser contar o número de caracteres em vez de bytes. Note que CHAR_LENGTH irá tratar uma string de dois bytes como um único caracter.
SELECT LENGTH('teste');
Isto retorna 5.
Para trabalhar o comprimento máximo de uma determinada coluna combine as funções LENGTH() e MAX().
SELECT MAX(LENGTH(minha_coluna)) FROM minha_tabela;
Onde “minha_coluna” é o campo que você quer saber a largura máxima. Isto pode ser útil se você carregar dados de um código externo e quer assegurar-se de que tem espaço suficiente para armazenar os dados.
A query seguinte, retorna quantos caracteres tem o campo ‘cidade’ e quantos registros tem para essa quantidade.
SELECT
   LENGTH(cidade),
   COUNT(*) 
FROM cidade
GROUP BY LENGTH(cidade);
Você pode querer ordenar pela quantidade de registros ou pela quantidade de caracteres da seguinte maneira:
SELECT
   LENGTH(cidade),
   COUNT(*) 
FROM cidade
GROUP BY LENGTH(cidade)
ORDER BY COUNT(*) DESC
ou
SELECT
   LENGTH(cidade),
   COUNT(*) 
FROM cidade
GROUP BY LENGTH(cidade)
ORDER BY LENGTH(cidade) DESC
Mais informações »

domingo, 24 de maio de 2015

Como passar a consulta dinamicamente para o JasperReports / iReport

com 0 Comentário
Defina um parâmetro do tipo String que receberá a consulta vinda da aplicação java:


Parâmetros do Relatório

Observe que temos dois parâmetros definidos por mim: Filtro – servirá para receber uma descrição textual do filtro que o usuário aplicou na geração do relatório e consulta – receberá a consulta a ser executada no banco de dados pelo JasperReports.
Configurar a consulta do relatório como sendo o parâmetro recebido:



Consulta do Relatório


A consulta do relatório será exatamento o parâmetro consulta. Observe o símbolo de exclamação depois da letra P. Sem ele o iReport dá erro no momento de efetuar a compilação do relatório.
Passar a consulta para o relatório através da aplicação Java:

  1. private String geraRelatorioEmPdfConsulta(String consulta, String jasper, String nomeRelatorio) {  
  2.     // Seto a variável saida como nulo  
  3.     saida = null;  
  4.   
  5.     try {  
  6.         JasperPrint print = JasperFillManager.fillReport(jasper, getMapComFiltroEConsulta(filtroAplicado, consulta), getNovaConexao());  
  7.         saida = RelatorioUtil.getDiretorioReal("/relatorios/relatorio.pdf");  
  8.         JasperExportManager.exportReportToPdfFile(print, saida);  
  9.         saida = RelatorioUtil.getContextPath() + "/relatorios/relatorio.pdf";  
  10.     } catch (Exception e) {  
  11.         addErrorMessage("Formulario""erro.geracao.relatorio", nomeRelatorio);  
  12.         e.printStackTrace();  
  13.     } finally {  
  14.         fechaConexao();  
  15.     }  
  16.   
  17.     // mostro o erro ou o relatório na janela que abre  
  18.     return "geraRelatorio";  
  19. }  
  20.   
  21. /* 
  22. * Esse método retorna o map com o filtro e a consulta que o usuário gerou. 
  23. */  
  24. public Map<String, String> getMapComFiltroEConsulta(String filtroAplicado, String consulta) {  
  25.     Map<String, String> map = new HashMap<String, String>();  
  26.   
  27.     // Se o usuário não aplicou nada no filtro, retorno nulo para o relatório  
  28.     if (filtroAplicado == null)  
  29.         filtroAplicado = "";  
  30.     else  
  31.         filtroAplicado = "Você aplicou o seguinte filtro no relatório:\n" + filtroAplicado;  
  32.   
  33.     map.put("Filtro", filtroAplicado);  
  34.     map.put("consulta", consulta);  
  35.   
  36.     return map;  

Observe, pelo código acima, que eu passo a consulta e o filtro que foram gerados para o relatório dentro de um HashMap, como o JasperReports exige. No final, o relatório com um campo do filtro fornecido ficou assim.

Relatório Gerado

O campo marcado em vermelho foi o filtro aplicado pelo usuário que eu mandei para o relatório como um parâmetro chamado Filtro e que na verdade é apenas uma descrição textual.

Obs.: cada coluna retornada pela minha consulta deve ter o mesmo nome do field no relatório. Caso isso não ocorra, haverá um erro na geração.
Mais informações »

Total de visualizações