sábado, abril 06, 2013

Problema de incompatibilidade com equipamentos android - auto focus

HI,

Registrando, porque é um descuido que pode trazer problemas e o desenvolvedor nem perceber.

Recentemente implementei a leitura de código de barras em um sistema android. Alguns dias depois, meu sócio relatou que alguns usuários não estavam mais conseguindo atualizar o sistema, dizia que era incompatível.

Já tava desconfiado que era por causa dessa última alteração. Fui olhar a especificação do smartphone, um Galaxy Y, e reparei que não tinha auto focus. Lembrei que no sistema tinha essa permissão no manifest.

Fui em busca da solução, já que não tinha como reverter o que fiz.

Achei aqui

android market says no device compatible?
http://stackoverflow.com/questions/9482128/android-market-says-no-device-compatible


Só colocar a permissão como required igual a false.





Fiquem na Paz!!!

segunda-feira, abril 01, 2013

Erro ao tentar conectar o Crystal Reports 2008 ao MySQL usando a conexão ODBC

HI,

Hoje resolvi aprender a conectar uma base de dados do MySQL no Crystal Reports. Até então faço apenas relatórios acessando o Oracle.

Pesquisando no Google descobrir que precisaria criar uma conexão ODBC. OK, fui em busca do MySQL Connector para ODBC. Instalei a versão 64 bits no meu notebook, criei a conexão no Administrador do Microsoft ODBC do windows e quando fui acessá-la no Crystal Reports deu o seguinte erro:


Failed to connect
Details: IM014: [Microsoft] [ODBC Driver Manager] Data Source (DSN) has specified an architecture incompatibility between the driver and application


Resolvi desinstalar  a versão 64 bits e instalar a 32. Mas quando fui criar a conexão no ODBC não listava o driver do MySQL. Lembrei que tinha visto em um vídeo que o caminho do Administrador do Microsoft ODBC era alterado pra pasta C:\Windows\SysWOW64\odbcad32.exe, antes tava C:\Windows\System32\odbcad32.exe. Fiz isso e conseguir criar a conexão e acessar a partir do Crystal Reports.


Link que me ajudaram

Connecting MySQL with Crystal Reports v10
http://stackoverflow.com/questions/7020083/connecting-mysql-with-crystal-reports-v10

Crystal Report C# with MySql Tutorial
http://www.youtube.com/watch?v=NX3AEvpTSns

Using Connector/ODBC with Crystal Reports
http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-examples-tools-with-crystalreports.html



Fiquem na Paz!!!

Exibindo uma mensagem no site por algum tempo determinado usando JQuery

HI,

Coloquei esse efeito em uma página de inclusão de um sistema em Asp.Net que estou fazendo para indicar que o registro foi incluído com sucesso. Geralmente que mostrava uma mensagem usando a função Alert do java script.

Deu um pouco de trabalho, já que eu tive que acionar essa mensagem a partir do CodeBehind da página, mas graças a Deus consegui montar o quebra cabeça.

usei o exemplo desse site para montar meu código

JQuery fading a div after a certain time
http://papermashup.com/jquery-fading-a-div-after-a-certain-time/


Também tem esse exemplo

Effect Delay Trick
http://www.learningjquery.com/2007/01/effect-delay-trick




Fiquem na Paz!!!

Procedure com query dinâmica para excluir um registro no MySQL

HI,

Estou fazendo um site usando Asp.Net com MySQL, e cada tabela tem a sua classe no sistema, e em cada classe tem o método Manutenção para inserir/atualizar e o método Excluir. Só que o excluir é repetitivo em cada classe: delete from tabela where campo = 1, por exemplo. A única coisa que muda é a tabela e o campo. Então pensei em fazer uma procedure genérica onde eu passasse como parâmetro o nome da tabela , o campo da condição e o código do registro a ser excluído. No Oracle eu já sabia que tem com montar uma query pra ser execeutada.

Achei a dica aqui

How To have Dynamic SQL in MySQL Stored Procedure
http://stackoverflow.com/questions/190776/how-to-have-dynamic-sql-in-mysql-stored-procedure


Minha procedure ficou assim:


CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_excluir_registro`(IN `_NOMETABELA` VARCHAR(50), IN `_CAMPO` VARCHAR(50), IN `_VALOR` VARCHAR(50))
BEGIN
SET @s = CONCAT('DELETE FROM ',_NOMETABELA, ' WHERE ', _CAMPO, ' = ', _VALOR);
PREPARE stmt FROM @s;
EXECUTE stmt;
END




Fiquem na Paz!!!!

sábado, março 30, 2013

Trabalhando com uma tabela de Contadores no MySQL

HI,

Essa dica é fresquinha, acabei de implementar agora.

Estou fazendo um sistema de suporte usando o banco MySQL e para criar o código do protocolo minha intenção é que em cada ano o contador comece do 1.

Exemplo: 201300001, 201300002,  201300...
Quando for 2014 que comece tudo de novo, 201400001, 201400002, ...

Crie uma tabela com dois campo, Ano e Valor.

Incrementar o valor com +1 é tranquilo, mas como garantir que dois usuários não peguem o mesmo valor?

Pensei em bloquear o registro para dar um update e pegar o valor atual. Pesquisando como fazer isso, achei dessa maneira que pensei em fazer e uma muito melhor.

Achei a dica aqui

MySQL How To Select and Update in Single Statement - Increment Counter avoiding Race Condition
http://www.sqlines.com/mysql/how-to/select-update-single-statement-race-condition

Usei essa solução


UPDATE counters
SET value = LAST_INSERT_ID(value) + 1
WHERE id = 1;

SELECT LAST_INSERT_ID();


Mas eu não quis usar pegando o valor atual, e sim ele +1

Ficou assim meu update

DECLARE novo_valor INT;


UPDATE seq_protoco
SET valor = LAST_INSERT_ID(valor + 1)
WHERE ano = 2013;

SELECT LAST_INSERT_ID() INTO novo_valor;




Fiquem na Paz!!!

quarta-feira, março 27, 2013

Barra de Progresso no Android

HI,

Precisei melhorar uma tela de comunicação de um programa que fiz. Nessa tela é recebido um arquivo compactado com os arquivos para atualização e é transmitido outro arquivo compactado com as informações que foram coletadas.

Pois bem, a tela tinha uma mensagem de dialogo apenas exibindo aquela bolinha girando e uma mensagem pedindo pra aguardar. Decidir modificar para ir mostrando cada etapa do processo na tela e resolvi modificar o dialogo para Progress Bar.

Usei esses exemplos para modificar a minha rotina.

Android Progress Bar Example
http://www.mkyong.com/android/android-progress-bar-example/

android progress dialog example
http://mobile-development.org/index.php/android/android-progress-dialog-example




Fiquem na Paz!!!

domingo, março 24, 2013

Adicionando leitura de código de barras ao nosso projeto no Android

HI,

Essa é pra quem não quer ficar acessando um programa de leitura de código de barras à partir do nosso programa.

Com a lib ZXing é possível incorporar esse recurso ao nosso projeto.

Achei como fazer essa integração nesse blog:

Utilizando Zxing para ler código de barras.
http://maicon.strey.nom.br/blog/2012/04/27/utilizando-zxing-para-ler-codigo-de-barras/


Fiquem na Paz!!!

domingo, março 17, 2013

Instalação manual do Apache e do PHP no Windows

HI,

Mais um pró resolvido, graças a Deus e as pessoas que disponibilizaram a solução.

Eu já tinha instalado o MySQL no meu  notebook para acessá-lo no Visual Studio. Baixei a versão 64bit e a instalação é manual.

E hoje encontrei um sistema de pesquisa em php e decidi estudar seu funcionamento, mas para testá-lo não queria instalar o Wamp, por exemplo, já que tenho o MySQL instalado. Então decidi baixar o Apache e o PHP.

Apache (no meu caso é 64bits)
http://www.apachelounge.com/download/win64/

PHP
http://windows.php.net/download/#php-5.4


Instalei o Apache como serviço, testei no browser, tudo OK.

Descompactei o PHP, segui os passos de configuração do Apache, decidir instalar o PHP como módulo do Apache.

Quando fui iniciar o serviço do Apache deu o seguinte erro:

The Apache service named
reported the following error: >>>
httpd.exe: Syntax error on line 497 of C:/Apache24/conf/httpd.conf: Cannot load C:/php/php5apache2_4.dll into server: %1 n\xe3o \xe9 um aplicativo Win32 v\xe1lido.



Depois de alguns muitos minutos de busca no Google, consegui achar o caminho para resolver esse probleminha.

Nesse resposta consegui o link da versão 64bits do PHP, da versão atual.
http://stackoverflow.com/questions/8263297/cannot-load-php5apache2-2-dll/13510720#13510720

Tem um link para esse endereço
http://www.apachelounge.com/download/additional/


Fui na sessão Members e baixei a versão 64bits do PHP

PHP 5.4.13 available (x64 & x86)
http://www.apachelounge.com/viewtopic.php?p=24113



Fiquem na Paz!!!

domingo, março 10, 2013

Voltando as atividades aqui no Blog

HI,

Depois de alguns meses sem publicar uma só linha aqui nesse espaço que costumo compartilhar as soluções de problemas (na área da nossa profissão) que vou encontrando soluções pelo caminho, voltei a publicar.

Porque tanto tempo afastado?

Acabei ficando sem tempo. Tava numa época de preparativos pro meu casamento. Casei em fevereiro. Graças a Deus tá tudo uma maravilha.



Fiquem na Paz!!!

Instalação manual do MySQL

HI,

Baixei a versão atual do MySQL Community Server e só tinha a versão 64 bits em zip pra baixar.

Segui essa receita de bolo e minha versão tá funcionando beleza.
http://dev.mysql.com/doc/refman/5.6/en/windows-install-archive.html

Pra manipular meu banco de dados instalei o MySQL Workbench
http://www.mysql.com/downloads/workbench/


Fiquem na Paz!!!