Archive for the ‘Dicas’ Category

[Desvendando o My.cnf] mensagens de erro para Português

Saturday, April 26th, 2008

Dando inicio à serie “Desvendando o My.cnf“, vou mostrar em poucos passos como passar as mensagens de erro do mysql para português.

Primeiro, o my.cnf, que é responsável por todas as configurações do mysql. Esta localizado em /etc/mysql/my.cnf, para alterar você precisa de privilégios de super-usuário.

Começando, abra o arquivo no terminal
$-> sudo vi /etc/mysql/my.cnf

Localize a variável dentro do editor:
digite: /language

Vá até o final da linha
digite: shift+a

Substitua english por portuguese

Salve o arquivo:
digite: ESC + : + x

Reinicie o mysql:
$-> sudo killall mysqld
$-> sudo mysqld_safe &

Pronto, chegamos ao fim do primeiro capítulo sobre o arquivo de configuração do mysql, e trocamos a linguagem do mysql de forma simples.

Criando um xml a partir de uma consulta ao banco

Friday, April 25th, 2008

Muitas vezes é nessessario criar um xml com dados do seu banco, pra isso utiliza-se programação externa, nesse artigo vou mostrar como nao depender de outra linguagem para gerar um xml.

shell> mysql -uroot –xml -p -e “use banco; select * from tb_tabela” > arquivo.xml

Muito simples, acabo de fazer um aqui, encontrei um prblema com tagas html dentro de um resultado. vou procurar resolver e posto o que conseguir.

Escrever Stored Procedures em Linguagens externas

Thursday, April 24th, 2008

 Eu também não acreditei, mas é verdade.

Graças à Eric Herman (mysql.com) & Antony Curtis (ieee.org), agora podemos desenvolver nossas SP em:
C, PERL, Java,LegacyUDF e XML-RPC.

Outras linguagens ja fazem parte das próximas versões:
Python,Lua e Ruby.

Um exemplo:

XML-RPC Language Plug-in

Status: working

Requirements:

  • xmlrpc-c library

Example:

mysql> create function xml_get_state(id int) returns text

-> no sql language xmlrpc external name

-> ‘xmlrpc://betty.userland.com/RPC2;examples.getStateName’;

Query OK, 0 rows affected (0.00 sec)

mysql> select xml_get_state(40);

+——————-+
| xml_get_state(40) |
+——————-+
| South Carolina |
+——————-+

1 row in set (0.42 sec)

Mais aqui

Função para fazer URL decode em Mysql

Thursday, April 24th, 2008

DELIMITER $$

DROP FUNCTION IF EXISTS `_functions`.`url_decode`$$
CREATE DEFINER=`root`@`%` FUNCTION `_functions`.`url_decode`(original_text text) RETURNS text CHARSET latin1
BEGIN
declare new_text text default null;
declare pointer int default 1;

set new_text = replace(original_text,’+',’ ‘);
while (LOCATE(”%”,new_text,pointer) <> 0 )&& (pointer < length(new_text)) do
set pointer = LOCATE(”%”,new_text,pointer);
set new_text = concat(left(new_text,pointer-1), char(conv(mid(new_text,pointer+1,2),16,10)), right(new_text,length(new_text)-(pointer+2)));
set pointer = pointer + 1;
end while;

return new_text;

END;

$$

DELIMITER ;

Repare que ele utiliza um outro banco para guardar as funções.

Por Garret Hill

Como atualizar parte de uma string em uma tabela.

Monday, February 18th, 2008

Atualizar dados em lote nem sempre é simples, principalmente quando você precisa atualizar parte de um campo, por exemplo um campo de URL, voce precisa trocar http://mysql.com para http://dev.mysql.com, preservando o restante da url. veja como:

mysql> UPDATE tabela SET tbl_url=REPLACE(tlb_url, ‘http://mysql.com’, ‘http://dev.mysql.com);

O restante das urls continuarão intactos. ;-)
Boa sorte.

Selecionar registros diferentes para chaves iguais

Saturday, February 16th, 2008

Imagine que você tem uma tabela de times (id,nome) e uma tabela de jogos (id,time1_id,time2_id,data) e vc precisa selecionar os jogos no formato:

20/10/2007 - FLUMINENSE x FLAMENGO

Simples, basta trazer 2 vezes a tabela de times e relacionar cada uma com seu id na tabela de jogos:

mysql->

SELECT
data as DATA,
CONCAT_WS(’ x ‘,d.nome, e.nome) AS JOGO
FROM
jogos, time AS d, time as e
WHERE
c.time1_id=d.id and
c.time2_id =e.id 

Blog para a equipe de desenvolvimento

Friday, February 15th, 2008

Estou testando utilizar o wordpress como ferramenta de trabalho, ajudando na documentação e no gerenciamento do projeto.

Com a ajuda de cada integrante da equipe, ou seja:

Gerente de projetos , DBA (eu), Programadores, Html coders e beta tester.

As melhoras em velocidade de desenvolvimento e entrosamento foi significativa.

A adição do blog no processo de desenvolvimento é válida e supre a necessidade de softwares adicionas para documentação e registro de tarefas.

Alguns pré-requisitos foram significamente importantes nessa implantação:

  • Conhecimento do wordpress por toda a equipe
  • Categorias claras , definindo etapas de um processo (duvidas, sugestoes, pendencias, comentarios)
  • Perfil de administrador a todos os usuarios
  • Restrição à leitura do blog à apenas os integrantes da equipe ( evitando a inibição e o vazamento de informação )
  • Não ter medo do novo!!!

Ubuntu sem som no toshiba

Friday, February 15th, 2008

Demorei pra encontrar a solução, entao vou postar aqui, tenho um toshiba A215-s7422, instalei o ubuntu porem nada de som, solução? google.

1 - Habilitar backports nas fontes de software
( System -> Administration -> Software Sources -> Updates -> Unsupported updates (gutsy-backports) )

2 - Descubra a versao do seu kernel
no terminal digite ‘uname -r’
anote se for 386 ou generic para o proximo passo

3 -  no terminal execute:
sudo aptitude install linux-backports-modules-generic
ou
sudo aptitude install linux-backports-modules-386

4 - sudo vi /etc/modprobe.d/alsa-base
adicione essa linha ao final do arquivo:
options snd-hda-intel model=toshiba

5 - Reinicie

Blog bacana sobre o Campus party

Friday, February 15th, 2008

Depois de algum tempo afastado da blogsfera ( to parecendo o maurivan assim ), vou voltar postar, e nao só sobre bancos de dados, vou falar de mais tecnologias.

Começando pelo blog de uns camaradas , neste instante estao no Campus Party.

Retornar informações das SPs

Tuesday, January 22nd, 2008

Boa dica, relacionar os parametros das SP’s

mysql> SELECT * FROM INFORMATION_SCHEMA.ROUTINES ;

Com essa tabela vc pode manipular procedures em lote ;-)