Dicas sobre desenvolvimento de software, gestão e tributações

Rede Social

24 de julho de 2018

Get Ip local C#


Neste artigo irei mostrar como descobrir o IP da máquina onde está rodando seu aplicativo.
É bastante simples, você vai precisar apenas da classe System.Net.

Primeiro precisamos saber qual o nome da máquina, pois sem o nome não temos como pesquisar pelo IP.

string nomeMaquina = Dns.GetHostName();

Após isso utilizamos o método que pesquisa e retorna o IP de acordo com o nome passado.

IPAddress[] ipLocal = Dns.GetHostAddresses(nomeMaquina);
Este método retorna tanto o IPv6 quanto o IPv4, por tanto temos que escolher com qual iremos trabalhar.

Caso seja o IPv4 é só utilizar o ipLocal[1], caso seja o IPv6 é o ipLocal[0].


Segue abaixo o código completo:

string nomeMaquina = Dns.GetHostName();
IPAddress[] ipLocal = Dns.GetHostAddresses(nomeMaquina);
string ip = ipLocal[1].ToString();
Ler

9 de julho de 2018

Restaurar banco SQL server sem o arquivo .LDF (log)




     Recentemente passei por uma situação onde um bakcup do banco de dados foi feito de forma errada e ao invés de gerado um backup, foram copiados os arquivos .mdf e .ldf, até aí ok, mas o problema é que isso tudo foi feito remotamente e no momento de transferir os arquivos o .ldf foi corrompido.
    Quando o técnico tentou anexar o arquivo .mdf para voltar a utilizar o banco uma mensagem de erro era exibida algo como:
“Log file ‘D:\MeuDb.ldf’ does not match the primary file.  It may be from a different database or the log may have been rebuilt previously.The log cannot be rebuilt when the primary file is read-only.”
    Isso ocorre quando o banco de dados não é colocado offline antes de copiar os arquivos, portanto o arquivo primário como é dito na mensagem não aceita o comando é como se estivesse sempre vinculado ao arquivo de log.
    Mas mesmo assim existe uma forma de "enganar" o SQL Server e conseguir utilizar o banco de dados basta seguir os passos.

obs. Como na mensagem acima vou colocar o nome fictício do meu banco como Db, então nas descrições sempre que ver MeuDb coloque o nome do seu banco de dados. E durante o processo abaixo algumas mensagens de erro serão exibidas pelo SQL Server, continue seguindo o passo-a-passo mesmo assim.

1 - Criar um banco de dados qualquer com o mesmo nome do banco de dados que estamos tentando recuperar, se atente para os arquivos .mdf e .ldf que devem ser iguais aos que eram do banco anterior.
2 - Coloque o banco criado como somente leitura e depois como offline
alter database MeuDb set read_only
alter database MeuDb set offline
3 - Substitua o arquivo mdf do novo banco pelo arquivo que você está recuperando
4 - Volte o banco como online
alter database MeuDb set online
5 - Sete o banco para leitura e escrita
alter database MeuDb set read_write
6 - Coloque o banco em emergência e como usuário único
alter database MeuDb set emergency
alter database MeuDb set single_user
7 - Exclua o arquivo de log do banco novo
8 - Recrie o log
alter database MeuDb rebuild log on
(Name= MeuDb_log,filename='CaminhoDoArquivo\MeuDb.ldf')
9 - Defina o banco como pronto para uso
alter database MeuDb set online
alter database MeuDb set MULTI_USER

Pronto você já pode voltar a usar seu banco de dados.
Ler

3 de julho de 2018

Java Script: Criando elementos html


     Para criar elementos html no js podemos utilizar o comando createElement(), por exemplo, caso queiramos adicionar uma nova linha à uma tabela, podemos utilizar
var linha = document.createElement("tr");
Criado o elemento linha precisaremos crias as colunas da tabela.
var coluna1 = document.createElement("td");
var coluna2 = document.createElement("td");
Após criadas as colunas devemos informar à qual linha aquelas colunas se destinam;
linha.appendChild(coluna1);
linha.appendChild(coluna2);
E utilizando a mesma lógica deverá adicionar a linha como pertencente à uma tabela.
var tabela = document.querySelector("#tabela");
tabela.appendChild(linha);
Ler