Olá pessoal, ganhei um Kindle da minha linda esposa Tatiane!!! É incrível como meu motivou mais a leitura, fazia muito tempo que eu não terminava de ler um livro por completo, e semana passada consegui finalizar um excelente livro chamado "Agile". Estou muito empolgado com a leitura, por enquanto vou dar foco a leituras com foco em Agile, pretendo tirar certificação até o mês de Junho de Scrum Master.
Essa semana inciei a leitura de outro livro muito bom chamado "Como mudar o mundo, gestão 3.0", é bem interessante e útil para aplicar no nosso dia a dia, ele nos ajuda a lidar com pessoas resistentes a mudança. Acredito que finalizo essa leitura até sexta-feira, em seguida vou ler um próprio para certificação, conforme o andamento dos meus estudos vou compartilhando com vocês.
O detalhe importante que os livros custam metade do preço.
Para finalizar esse post, quero agradecer minha esposa pelo incrível presente, que além de ser moderno também melhorou meu hábito para leituras e a cada página virada enriquece minha vida. Obrigado!
Abs.
Livro Agile:
http://www.casadocodigo.com.br/products/livro-agile
quarta-feira, 13 de maio de 2015
quinta-feira, 7 de maio de 2015
Oracle - Too many values
Olá pessoal, estou viajando muito a trabalho e acabei ficando sem tempo para fazer novos posts. Não vou desanimar não!
Vamos um erro que não é difícil, mas na minha opinião a descrição dele não é clara e fiquei um pouco perdido até encontrar o motivo.
Erro de SQL: ORA-00913: valores demais
00913. 00000 - "too many values"
*Cause:
*Action:
O motivo é que informei uma quantidade de campos maior do que existem na minha tabela.
Ex:
>TabelaCliente
colunaNome
colunaIdade
Insert:
insert into TabelaCliente(Select nome, idade, CPF from pessoa);
O erro ocorre porque minha TabelaCliente tem apenas 2 colunas e estou informando 3.
O correto:
insert into TabelaCliente(Select nome, idade from pessoa);
Encontrei o motivo do erro no site baixo:
http://www.techonthenet.com/oracle/errors/ora00913.php
O site da oracle é rico em conteúdo, vale a pena conferir.
http://docs.oracle.com/cd/B28359_01/index.htm
Tchau e até logo.
Vamos um erro que não é difícil, mas na minha opinião a descrição dele não é clara e fiquei um pouco perdido até encontrar o motivo.
Erro de SQL: ORA-00913: valores demais
00913. 00000 - "too many values"
*Cause:
*Action:
O motivo é que informei uma quantidade de campos maior do que existem na minha tabela.
Ex:
>TabelaCliente
colunaNome
colunaIdade
Insert:
insert into TabelaCliente(Select nome, idade, CPF from pessoa);
O erro ocorre porque minha TabelaCliente tem apenas 2 colunas e estou informando 3.
O correto:
insert into TabelaCliente(Select nome, idade from pessoa);
Encontrei o motivo do erro no site baixo:
http://www.techonthenet.com/oracle/errors/ora00913.php
O site da oracle é rico em conteúdo, vale a pena conferir.
http://docs.oracle.com/cd/B28359_01/index.htm
Tchau e até logo.
segunda-feira, 13 de abril de 2015
SQL SERVER - Connection refused: connect
Olá pessoal, hoje me deparei com um erro chato ao tentar me conectar com o SQL SERVER.
Uma simples string de conexão não conectava o banco, então eu desabilitei o firewall e mesmo assim não funcionou.
Eu também executei o comando netstat -an no DOS e percebi que a porta 1433 não estava rodando.
Olha só os erros:
comando netstat -an
Como resolver isso:
- Sql Server Configuration Manager
- Sql Server Network Configuration
- Habilite o protocolo TCP/IP
Em seguida
- clique duas vezes em TCP/IP
- IP Addresses
- Informe em IP ALL a porta 1433 ou a porta necessária.
- Necessário reiniciar o servidor SQL SERVER
- Após isso execute novamente o comando netstat -an
- Funcionou, olhe na última linha a 1433 rodando.
É isso ai galera, valeu.
Abs.
sexta-feira, 10 de abril de 2015
Backup SQL 2012 e Restore SQL 2008 - Specified cast is not valid. (SqlManagerUI)
Galera hoje tentei fazer um backup/restore de uma servidor SQL 2012 para SQL 2008, e tive o seguinte erro:
Specified cast is not valid. (SqlManagerUI)
Ao procurar na net, encontrei informações que dizem que não é possível fazer o downgrade, uma alternativa que encontrei é gerar um script das procedures ,tabelas, etc.. com a opção de gerar os dados.
No vídeo abaixo tem o passo a passo.
Abs.
fontes:
http://blog.sqlauthority.com/2012/12/25/sql-server-restoring-2012-database-to-2008-or-2005-version-and-2-other-most-asked-questions/
https://www.youtube.com/watch?v=lSh3fq-MikE
Specified cast is not valid. (SqlManagerUI)
Ao procurar na net, encontrei informações que dizem que não é possível fazer o downgrade, uma alternativa que encontrei é gerar um script das procedures ,tabelas, etc.. com a opção de gerar os dados.
No vídeo abaixo tem o passo a passo.
Abs.
fontes:
http://blog.sqlauthority.com/2012/12/25/sql-server-restoring-2012-database-to-2008-or-2005-version-and-2-other-most-asked-questions/
https://www.youtube.com/watch?v=lSh3fq-MikE
C++ - GET IP BY NAME | GET NAME BY IP
Olá galera, ultimamente tenho trabalhado muito e ainda não consegui montar um cronograma das minhas atividades pessoais que tenho como meta para esse ano. Preciso fazer isso nesse final de semana!!
Mas hoje quero contribuir com um código em C++ que é simples e muito útil.
O código abaixo em C++ tem como objetivo retornar o IP de um PC que esta na REDE pelo nome passado como parâmetro. E o outro faz o contrário..
Você vai precisar dessas includes:
#include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
#include <WinSock2.h>
#include <ws2tcpip.h>
E declarar as seguintes variáveis.
struct hostent *remoteHost;
struct in_addr addr;
Essa function recebe o nome do computador que retornar o IP.
char* getIpByName(char* name) throw(int)
{
printf("Calling gethostbyaddr with %s\n", name);
addr.s_addr = inet_addr(name);
if (addr.s_addr == INADDR_NONE)
{
printf("O endereço é inválido.\n");
return NULL;
}
else remoteHost = gethostbyaddr((char *) &addr, 4, AF_INET);
if (remoteHost==NULL) throw(0);
return remoteHost->h_name; //Retorna o IP pelo nome recebido
}
Essa outra aqui recebe o IP e retorna o nome.
char* getNameByIP(char* IP) throw(int)
{
printf("Calling gethostbyname with %s\n", IP);
remoteHost = gethostbyname(IP);
if (remoteHost==NULL) throw(1);
addr.s_addr = *(u_long *) remoteHost->h_addr_list[0];
return inet_ntoa(addr);
}
Agora vamos testar:
int main()
{
WSADATA wsaData;
int iResult;
DWORD dwError;
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0)
{
printf("WSAStartup failed: %d\n", iResult);
return 1;
}
char* URI = "192.192.115";
try
{
if (isalpha(URI[0]))
{
char *x = getNameByIP(URI);
printf("\tIP Address: %s\n", x);
}
else
{
char *x = getIpByName(URI);
printf("\tName: %s\n", x);
}
}
catch(int e)
{
printf("%s\n", "Ocorreu um erro: HOST NOT FOUND");
}
system("pause");
return 0;
}
Mas hoje quero contribuir com um código em C++ que é simples e muito útil.
O código abaixo em C++ tem como objetivo retornar o IP de um PC que esta na REDE pelo nome passado como parâmetro. E o outro faz o contrário..
Você vai precisar dessas includes:
#include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>
#include <WinSock2.h>
#include <ws2tcpip.h>
E declarar as seguintes variáveis.
struct hostent *remoteHost;
struct in_addr addr;
Essa function recebe o nome do computador que retornar o IP.
char* getIpByName(char* name) throw(int)
{
printf("Calling gethostbyaddr with %s\n", name);
addr.s_addr = inet_addr(name);
if (addr.s_addr == INADDR_NONE)
{
printf("O endereço é inválido.\n");
return NULL;
}
else remoteHost = gethostbyaddr((char *) &addr, 4, AF_INET);
if (remoteHost==NULL) throw(0);
return remoteHost->h_name; //Retorna o IP pelo nome recebido
}
Essa outra aqui recebe o IP e retorna o nome.
char* getNameByIP(char* IP) throw(int)
{
printf("Calling gethostbyname with %s\n", IP);
remoteHost = gethostbyname(IP);
if (remoteHost==NULL) throw(1);
addr.s_addr = *(u_long *) remoteHost->h_addr_list[0];
return inet_ntoa(addr);
}
Agora vamos testar:
int main()
{
WSADATA wsaData;
int iResult;
DWORD dwError;
iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != 0)
{
printf("WSAStartup failed: %d\n", iResult);
return 1;
}
char* URI = "192.192.115";
try
{
if (isalpha(URI[0]))
{
char *x = getNameByIP(URI);
printf("\tIP Address: %s\n", x);
}
else
{
char *x = getIpByName(URI);
printf("\tName: %s\n", x);
}
}
catch(int e)
{
printf("%s\n", "Ocorreu um erro: HOST NOT FOUND");
}
system("pause");
return 0;
}
Utilizei o DEV-C++ para desenvolver, link para download:
http://sourceforge.net/projects/orwelldevcpp/
Qualquer dúvida postem ai..
Abs.
quarta-feira, 1 de abril de 2015
Import database DUMP Oracle
Iai galera, hoje ao tentar importar um arquivo DUMP eu estava tendo problemas porque o DOS não reconhecia o comando 'imp'. Poís é, o problema que a pasta bin do oracle não estava setada na variavel de ambiente path.
Passo a passo:
- Botão direito no meu computador
- Propriedades
- Configurações avançadas do sistema
O comando para import é:
imp sys as sysdba/senha file=arquivodump..DMP log=arquivolog..LOG fromuser=usuariodatabaseorigem touser=usuariodatabasedestino
- Antes de fazer o import você precisa criar um usuário que vai ser o dono desse database(usuariodatabasedestino)
- O parâmetro fromuser precisa ser o usuário dono do database de origem.
Abs.
Passo a passo:
- Botão direito no meu computador
- Propriedades
- Configurações avançadas do sistema
Aqui você precisa adicionar a pasta bin do seu oracle, a minha esta em
D:\oraclexe\app\oracle\product\11.2.0\server\bin
Funcionou!
O comando para import é:
imp sys as sysdba/senha file=arquivodump..DMP log=arquivolog..LOG fromuser=usuariodatabaseorigem touser=usuariodatabasedestino
- Antes de fazer o import você precisa criar um usuário que vai ser o dono desse database(usuariodatabasedestino)
- O parâmetro fromuser precisa ser o usuário dono do database de origem.
Abs.
terça-feira, 31 de março de 2015
Connect to Server - Login failed for user Microsoft SQL Server, Error: 18456
Olá pessoal, montei um servidor SQL SERVER e acessei utilizando o Windows Authentication, em seguida criei um usuário do SQL SERVER.
O problema que ao tentar conectar utilizando o usuário que eu tinha acabado de criar, o SQL retornava o seguinte erro:
Login failed for user 'userprod'. (Microsoft SQL Server, Error: 18456)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=18456&LinkId=20476
O problema é porque o SQL SERVER esta desabilitado a autenticação com Windows Aunthentication e SQL SERVER.
Olha o passo a passo do erro:
- Faço o login utilizando Windows Aunthentication
- Crio o usuário
- Com o usuário criado e tento realizar o login utilizando SQL SERVER Authentication.
Solução
- Login utilizando Windows Autheticantion
- Botão direito no servidor.
- Properties
- Security
- Selecione a opção 'SQL SERVER and Windows Authetication mode
- É necessário reiniciar o servidor.
Após reiniciar o SQL SERVER faço o login novamente com o usuário criado utilizando SQL SERVER Authentication.
Funcionou
sexta-feira, 27 de março de 2015
Bem vindos - Hello-World
<hello-world>
Olá meu é Henrique Gonçalves Leite tenho 29 anos, Consultor de Sistemas e me casei em 18/12/2013. Pretendo nesse blog contribuir com soluções de problemas que resolvo diariamente tanto questões técnicas como pessoais, espero que gostem do conteúdo, não vou me preocupar na formatação do conteúdo. Quero que seja algo prático e de fácil leitura.
Na nossa área de TI, algo que acho muito legal é a contribuição de informações entre a comunidade.. Várias vezes, gastei dias pesquisando por soluções e sempre agente consegue encontrar.. Não vou inventar nada novo, vou apenas criar mais um canal de contribuição de soluções de problemas que enfrentamos no nosso dia a dia.
Mas algo que quero contribuir também é como continuar programando mesmo depois do casamento, eu pelo menos preciso ajudar em casa fazendo janta, limpando pia, levando minha cachorrinha filó para passear,, lavando roupas, etc.. Chegamos cansado e precisamos fazer tudo isso!! E quando percebemos não sobra tempo para os estudos e o desenvolvimento de nossos projetinhos..
Portanto vamos nessa, quero me organizar para que meu dia seja produtivo no trabalho e quando eu chegar em casa quero fazer minhas atividades técnicas e de casado!
Abs..
Assinar:
Postagens (Atom)