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

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;

}


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



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.