Spatial types and functions are not available for this provider because the assembly ‘Microsoft.SqlServer.Types’ version 10 or higher could not be found

Olá pessoal, bom dia!

Eu coloquei este título grandão aí que é para justamente aqueles que estão trabalhando com a extensão espacial do SQL Server saberem como lidar com este tipo de problema. Eu expliquei aqui em outro post (https://mastigado.wordpress.com/2015/07/17/adicionar-type-dbgeography-em-seu-projeto-c-sharp/) como utilizar esta extensão espacial no C Sharp e mais especificamente no Visual Studio, mas em algum momento quando você está utilizando o seu projeto Asp.Net pode ser que apareça a mensagem abaixo se alguma coisa em específico não foi feita antes.

fonte: http:mastigado.wordpress.com

Spatial types and functions are not available for this provider because the assembly ‘Microsoft.SqlServer.Types’ version 10 or higher could not be found

Trata-se de um erro que pode ser resolvido abrindo o Package Manager Console e escolhendo o seu projeto Asp.Net para instalar a bibilioteca abaixo:

Install-Package Microsoft.SqlServer.Types

Após este procedimento, se você estiver utilizando Asp.Net, vá até o arquivo Global.asax.cs e adicione a seguinte linha dentro do método Application_Start:

SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath(“~/bin”));

Caso você esteja usando uma aplicação Desktop, adicione a linha abaixo  antes do código que executa suas operações espaciais.

SqlServerTypes.Utilities.LoadNativeAssemblies (AppDomain.CurrentDomain.BaseDirectory);

fonte: http:mastigado.wordpress.com

Acessando seu banco de dados no Android com aSQLite Manager

Olá pessoal! Boi noite :)

Esta vai para quem está trabalhando com Android e tá afim de saber como as coisas estão sendo gravadas no sqlite.

fonte: https://mastigado.wordpress.com

Você deverá baixar o aplicativo aSQLite Manager no Google Play, aqui vai o link:

https://play.google.com/store/apps/details?id=com.xuecs.sqlitemanager&hl=pt_BR

Ele funciona muito bem, mas a surpresa que é você vai precisar habilitar o modo root do celular para poder acessar o diretório /data/data que é onde ficam as bases de dados dos aplicativos que você desenvolve.

Pois bem, aí vai um jogo rápido de como como colocar em rooted o Samsung Galaxy S3 Mini GT-I8200L (que é o mais problemático):

Root no Samsung Galaxy S3 Mini GT-I8200L de forma linda, maravilhosa e descomplicada!

  1. Primeiro baixe o aplicativo Vroot na versão 1.79 ou superior para PC;
  2. Habilite o modo de desenvolvedor no Android (Entrando na opção Sobre o dispositivo e em seguida clicando freneticamente na opção Nº de compilação);
  3. No modo desenvolvedor que se abrirá, habilite a depuração (modo debug);
  4. E instale o aplicativo que você baixou (Vroot) no seu computador  e com o celular ligado no cabo usb;
  5. Daí você instala no pc e manda bala até ele escrever alguma coisa tipo “complete” e reiniciar o seu celular (você pode tentar ver se esta opção de download te server: http://chinagadgetsreviews.blogspot.com.br/2014/09/download-vroot-latest-version-179.html).

Bem, voltando ao nosso foco, baixe o aplicativo SuperSU do Android e instale logo após o procedimento acima. Aqui vai o link:

https://play.google.com/store/apps/details?id=eu.chainfire.supersu&hl=pt_BR

Depois de ter instalado o SuperSu, execute o aplicativo SQLite Manager que você poderá abrir as pastinhas onde estão os bancos de dados e ver algo tipo isso (quando tentar acessar um tabela):

sqlitemanagerShow!

fonte: https://mastigado.wordpress.com

Adicionar type DbGeography em seu projeto C Sharp

Olá pessoal, Hello World!

Hoje, vou deixar uma dica para aqueles estão começando utilizar a base de dados espacial do SQL Server 2008 R2 em diante.

fonte: https://mastigado.wordpress.com

Quando se está trabalhando com um banco de dado contém tabelas que possuem o tipo geography, saiba que somente é possível trabalhar com ele utilizando o Entity Framework 6 (caso você só utilize Entity Framewok no seu projeto). Mas, mesmo utilizando o framework nesta versão e tiver mapeado suas tabelas em seu sistema usando o edmx é possível que um erro como o que está abaixo aconteça.

The property ‘meu_campo_geography’ on the type ‘MeuProjeto.MinhaSolution’ has a property type of ‘System.Data.Spatial.DbGeography’

Contudo isso resolve-se alterando a referência que está dentro da sua classe que contém o tipo espacial de:

‘System.Data.Spatial.DbGeography’

Para:

‘System.Data.Entity.Spatial.DbGeography’

E pronto! Resolvido.

fonte: https://mastigado.wordpress.com

fonte: http://stackoverflow.com/questions/16747649/when-upgrading-from-ef5-to-ef6-should-i-replace-system-data-objects

Instalar Aplicativo de arquitetura i386 em 64 bit no Debian

Olá pessoal!

HOje vou deixar um dica bem básica sobre um problema comum que tive ao tentar instalar o Skype (recém comprado pela Microsoft) no meu Linux 64.

Precisei instalar o Skype no meu note que está utilizando o Debian 8 64bit, mas no site do Skype só existe versão 32bit para Linux. Então, pesquisando em fóruns, descobri que é possível sim instalar um programa de arquitetura 32bit num 64bit. Segue abaixo a dica.

Após efetuar o comando dpkg -i nome_do_seu_aplicativo.deb a ser instalado, caso ele seja 32 e o seu sistema operacional 64bit, siga o passo a passo:

dpkg –add-architecture i386

apt-get update

apt-get -f instal

Caso ainda restem dúvidas, poste aí.

fonte: http://community.skype.com/t5/Linux/64-bit-linux-version/td-p/991578

fonte: https://mastigado.wordpress.com

Erros Git e Github

Olá pessoal!

Hoje iniciarei um arquivo contendo erros que podem ocorrer no git quando se está trabalhando com ele. Sempre irei atualizá-lo quando houver algum problema referente a isso, bem sei que antes de colocar um arquivo como este, deveria fazer um mini tutorial de git para o pessoal entender sobre o que estou falando, mas farei isto em seguida. Por ora, segue a lista de erros:

fonte: https://mastigado.wordpress.com

Caso aconteça de você ser avisado pelo git no meio de um commit para o seu github que seu repositório tem limite de espaço, como na mensagem abaixo:

this exceeds GitHub’s file size limit of 100.00 MB

Você poderá utilizar o seguinte comando:

git filter-branch -f –index-filter ‘git rm –cached –ignore-unmatch diretorioseexistir/nomedoarquivoaexcluir’

Moleza né? Simples assim, sem precisar mexer um dedo no seu commit. Apenas tente colocar os arquivos em seu repositório novamente.

fonte: https://mastigado.wordpress.com

fonte: http://stackoverflow.com/questions/21168846/cant-remove-file-from-git-commit

Funções de Manipulação de Data e Hora em Java Script

Olá pessoal!

Finalizando a série de posts que reproduzi do site MSPC – Informações Técnicas, finalizo neste último post com este sobre manipulação de data e hora no Java Script. O site tem um material bem rico e recomendo a visita.

Observações

1-) Parâmetros indicados entre parênteses são opcionais.2-) UTC (Coordinated Universal Time) é o padrão atual de tempo de acordo com os fusos horários. É continuação moderna do GMT (Greenwich Mean Time). Algumas vezes são considerados sinônimos, mas rigorosamente não são.

3-) Algumas funções (obsoletas ou de pouco uso) de data e hora não são apresentadas.

O objeto Date()

Permite trabalhar com datas e horas. Pode ser criado por uma das formas abaixo:

            new Date()
            new Date(ms)
            new Date(string_de_data)
            new Date(nAno, nMês, nDia [, nHora, nMin, nSeg, nMs] )

A data é dada em milissegundos, a partir de 00:00:00 h GMT de 01 de janeiro de 1970.

Se nenhum parâmetro é fornecido (primeira forma), são assumidas a data e hora locais, isto é, do computador que executa o script.

Parâmetros:

ms: milissegundos desde a data inicial dada acima.

string_de_data: uma seqüência de caracteres em um formato suportado. Exemplo: “Mon, 27 Dec 2004 12:00:00 GMT”.

nAno, nMês, nDia, etc: valores inteiros representando partes da data. Exemplo: Janeiro 0, Fevereiro 1, etc.

Exemplo de aplicação 1: a variável intervalo armazena o tempo de execução em milissegundos das outras instruções.

            tempo_1 = new Date();
            // outras instruções
            tempo_2 = new Date();
            intervalo = tempo_2 - tempo_1

Exemplo de aplicação 2: este é um exemplo dinâmico, que atualiza o objeto Date() a cada segundo, permitindo um relógio na tela em vez da simples hora e data do carregamento da página.

O script abaixo deve estar entre <head> e </head> da página:

            <script language="JavaScript">
            
            function DataHora(){
            var data = new Date();
            tempo.innerHTML = data;
            setTimeout("DataHora()",1000)
            }
            </script>

O código seguinte deve estar dentro de <body>:

onLoad="DataHora()"

E este no corpo da página (entre <body> e </body>):

<span id=tempo></span>

E o resultado é:

Thu May 21 2015 14:26:29 GMT-0300 (Hora oficial do Brasil)

É evidente que os nomes aparecem em inglês. Para outra língua, mais códigos são necessários.

 

getDate()

Retorna um número inteiro entre 1 e 31, que representa o dia do mês do objeto Date.Exemplo: a variável dia contém dia do mês da data atual.

            data = new Date();
            dia = data.getDate();

getDay()

Retorna um número inteiro do dia da semana. Domingo 0, segunda 1, terça 2, etc.Exemplo: a variável dia_semana contém o dia da semana da data atual.

            data = new Date();
            dia_semana = data.getDay();

getFullYear()

Retorna o ano do objeto Date em números absolutos, por exemplo 1998.Exemplo: a variável ano contém o ano da data atual.

            data = new Date();
            ano = data.getFullYear();

getHours()

Retorna a hora do objeto Date, um número inteiro entre 0 e 23.Exemplo:

            data = new Date();
            hora = data.getHours();

getMilliseconds()

Retorna os milissegundos do objeto Date, um inteiro entre 0 e 999.Exemplo:

            data = new Date();
            ms = data.getMilliseconds();

getMinutes()

Retorna os minutos do objeto Date, um inteiro entre 0 e 59.Exemplo:

            data = new Date();
            min = data.getMinutes();

getMonth()

Retorna o mês do objeto Date, um inteiro entre 0 e 11 (0 janeiro, 1 fevereiro, etc).Exemplo:

            data = new Date();
            mes = data.getMonth();

getSeconds()

Retorna os segundos do objeto Date, um número inteiro entre 0 e 59.Exemplo:

            data = new Date();
            seg = data.getSeconds();

getTime()

Retorna o número de milissegundos da data conforme informado no primeiro tópico. Em geral usado para especificar a data e hora de um outro objeto Date.Exemplo:

            certo_dia = new Date("May 15, 1998");
            outro_dia = new Date();
            outro_dia.setTime(certo_dia.getTime());

getTimezoneOffset()

Retorna a diferença, em minutos, entre a hora local e a hora GMT.Exemplo:

            data = new Date();
            dif_gmt_horas = data.getTimezoneOffset() / 60;

Date.parse(string_de_data)

Retorna o número de milissegundos de uma seqüência de caracteres (string) de data, desde 01 de janeiro de 1970 00:00:00 h (hora local).A string de data deve estar dentro do padrão aceito. Exemplo: Tue, 28 Dec 2004 11:00:00 GMT-0330. Se não especificado o fuso horário, o horário local é considerado.Deve sempre ser usado na forma Date.parse() e não com um objeto Date criado. Em geral usado com setTime() para especificar uma nova data para o objeto.

Exemplo:

            data = new Date();
            data.setTime(Date.parse("Apr 15, 2004"));

setDate(nDia)

Especifica um dia do mês para um objeto Date. nDia deve ser um inteiro entre 1 e 31, de acordo com o mês corrente.Exemplo:

            certo_dia = new Date("May 15, 1998");
            certo_dia.setDate(25);

setFullYear(nAno [, nMes, nDia])

Especifica um ano (em 4 dígitos) para um objeto date existente. nAno é um inteiro de 4 dígitos representando o ano, nMes um inteiro de 0 a 11 para o mês (0 janeiro, 1 fevereiro, etc) e nDia um inteiro de 1 a 31 para o dia do mês. Se é dado um valor para nDia, é obrigatório um valor para nMes.Se um parâmetro é especificado fora da faixa, a função tenta atualizar os demais de forma coerente. Exemplo: se um valor de 15 é dado para nMes, o ano é aumentado de 1 e o valor 4 é usado para nMes.Exemplo:

            certo_dia = new Date();
            certo_dia.setFullYear(1995);

setHours(nHora [, nMin, nSeg, nMs])

Especifica a hora para um objeto Date. nHora é um inteiro entre 0 e 23. Os demais parâmetros são opcionais: nMin (inteiro entre 0 e 59), nSeg (inteiro entre 0 e 59) e nMs (inteiro entre 0 e 999 para os milissegundos). Se nSeg é fornecido, nMin também deve ser dado. Se nMs é especificado, nMin e nSeg também devem ser.Se um parâmetro é especificado fora da faixa, a função tenta atualizar os demais de forma coerente. Exemplo: se 70 é dado para nMin, a hora é aumentada de 1 e 10 é usado para nMin.Exemplo:

            certo_dia = new Date();
            certo_dia.setHours(10);

setMilliseconds(nMs)

Especifica os milissegundos para um objeto Date. nMs deve ser um inteiro entre 0 e 999.Se nMs é dado fora da faixa, o objeto Date é atualizado de forma coerente. Exemplo: se nMs é 1100, os segundos são aumentados de 1 e 100 é usado para os milissegundos.Exemplo:

            certo_dia = new Date();
            certo_dia.setMilliseconds(500);

setMinutes(nMin [, nSeg, nMs])

Especifica os minutos para um objeto Date. nMin deve ser um inteiro entre 0 e 59. Os demais parâmetros são opcionais: nSeg (inteiro entre 0 e 59) e nMs (inteiro entre 0 e 999 para os milissegundos). Se nSeg é especificado, nMin também deve ser. Se nMs é dado, nMin e nSeg também devem ser.Se um parâmetro é dado fora da faixa, a função tenta atualizar os demais de forma coerente. Exemplo: se nSeg é 80, os minutos são aumentados de 1 e 20 é usado para os segundos.Exemplo:

            certo_dia = new Date();
            certo_dia.setMinutes(25);

setMonth(nMes [, nDia])

Especifica o mês de um objeto Date. nMes deve ser um inteiro entre 0 e 11 (0 janeiro, 1 fevereiro, etc). nDia é um parâmetro opcional para o dia do mês (inteiro entre 0 e 31).Se um parâmetro é dado fora da faixa, a função tenta atualizar o objeto de forma coerente. Exemplo: se 12 é dado para o mês, o ano é aumentado de 1 e 1 é usado para o mês.Exemplo:

            certo_dia = new Date();
            certo_dia.setMonth(4);

setSeconds(nSeg [, nMs])

Especifica os segundos de um objeto Date. nSeg deve ser um inteiro entre 0 e 59. nMs é um parâmetro opcional para os milissegundos (inteiro entre 0 e 999).Se um parâmetro é dado fora da faixa, a função tenta atualizar o objeto de forma coerente. Exemplo: se 70 é dado para nSeg, os minutos são aumentados de 1 e 10 é usado para os segundos.Exemplo:

            certo_dia = new Date();
            certo_dia.setSeconds(15);

setTime(nMs)

Especifica um valor para o objeto Date. nMs é um inteiro correspondente ao número de milissegundos desde 01 de janeiro de 1970 00:00:00 h.Exemplo:

            certo_dia = new Date("May 15, 1998");
            outro_dia = new Date();
            outro_dia.setTime(certo_dia.getTime());

toLocaleString()

Retorna uma seqüência de caracteres (string) de data, com formato definido pelas configurações do sistema operacional.Exemplo:

            <script language="JavaScript">
            var d = new Date();
            document.write(d.toLocaleString());
            </script>

E o resultado desse script é:

21/05/2015 14:17:59

Se o seu sistema operacional não é inglês configurado para o padrão americano, notar a diferença com o exemplo dado no primeiro tópico, O objeto Date().

toUTCString()

Retorna uma string formatada de acordo com a convenção UTC. Pode variar de acordo com o sistema operacional.Exemplo:

            data = new Date();
            var str = data.toUTCString();


Date.UTC(nA, nM, nD [, nHora, nMin, nSeg, nMs])

Retorna o número de milissegundos desde 01 de janeiro de 1970 00:00:00 h, hora universal.nA: ano depois de 1900. nM: inteiro de 0 a 11 para o mês. nD: inteiro de 1 a 31 para o dia do mês. nHora: inteiro de 0 a 23 para as horas. nMin: inteiro de 0 a 59 para os minutos. nSeg: inteiro de 0 a 59 para os segundos. nMs: inteiro de 0 a 999 para os milissegundos.Se um parâmetro for dado fora da faixa, a função tenta ajustar os demais de forma coerente. Exemplo: se 12 é usado para mês, ano é incrementado de 1 e 1 é usado para mês.

Deve sempre ser usado na forma Date.UTC(…) e não com um objeto Date criado.

Exemplo:

data_utc = new Date(Date.UTC(2004, 11, 15, 12, 0, 0));

fonte: http://www.mspc.eng.br/info/jscriptDataHora.shtml

Funções de Arrays em Java Script

Mais uma vez dando prosseguimento a reprodução de posts do site MSPC – Informações Técnicas, agora tratando de Funções de Arrays em Java Script. Recomendo a visita ao site.

Resumo das funções de arrays

Obs: em linguagem de computação, o termo inglês “array” pode ser entendido como uma “coleção”. Entretanto, aqui não traduzimos por ser bastante difundido o uso da palavra original.join (junta os elementos) | length (retorna o número de elementos) | pop (remove o último elemento) | push (adiciona elementos no final) | reverse (inverte a ordem) | shift (remove o primeiro elemento) | slice (extrai uma parte) | sort (ordena elementos) | splice (adiciona e remove elementos) | toString (junta elementos em uma string) | unshift (adiciona elementos no início)

O objeto Array

Pode ser definido como um conjunto ordenado de valores, numéricos ou não, que são referenciados por um mesmo nome.Em geral, criado por uma das formas:

new Array(tamanho) ou

new Array(valor0, valor1, valor2, ...)

Exemplo:

nivel = new Array("baixo","medio","alto");

nivel = new Array[3];

Para este último, os valores devem ser dados individualmente:

nivel[0] = "baixo";
nivel[1] = "medio";
nivel[2] = "alto";

Exemplo com valores numéricos: nivel = new Array(10, 20, 30);

Também pode ser criado a partir da forma literal:

nivel = ["baixo", "médio", "alto"];

join(sep)

Junta seqüencialmente os elementos de uma array usando o caractere (ou caracteres) dados por sep. Se ele não é indicado, usa a vírgula como default.Exemplos:

nivel = new Array("baixo","medio","alto");

str_1 = nivel.join(); //resulta “baixo,médio,alto” em str_1
str_2 = nivel.join(", "); //resulta “baixo, médio, alto” em str_2
str_3 = nivel.join("/"); //resulta “baixo/médio/alto” em str_3

length

Indica o número de elementos em uma array. Pode ser usado para diminuir o comprimento de um objeto já definido. Não pode aumentar.Exemplo:

nivel = new Array("baixo","medio","alto","muito alto");
nivel.length = 3;
//reduz o tamanho de 4 para 3

pop()

Remove e retorna o último elemento de uma array, reduzindo o seu tamanho.Exemplo:

nivel = new Array("baixo","medio","alto","muito alto");
eliminado = nivel.pop;
//a variável eliminado contém “muito alto”

push(valor1, valor2, …)

Adiciona um ou mais elementos (valor1, valor2, etc) ao final de uma array, retornando o seu novo tamanho.Exemplo (a variável novo será 4 e os dois elementos serão adicionados):

nivel = new Array("baixo","medio");
novo = nivel.push("alto","muito alto");

reverse()

Inverte a ordem dos elementos. O primeiro se torna o último e o último se torna o primeiro.Exemplo (nivel[0], nivel[1] e nivel[2] serão respectivamente “alto”, “médio” e “baixo”):

nivel = new Array("baixo","medio","alto");
nivel.reverse();

shift()

Remove o primeiro elemento e retorna esse elemento, reduzindo o tamanho da array.Exemplo (a variável removido terá “muito baixo” e a nivel não terá esse elemento):

nivel = new Array("muito baixo","baixo","medio","alto");
removido = nivel.shift();

slice(ini [, fim])

Extrai uma parte de uma array e retorna uma nova com essa parte. O parâmetro ini é o índice base zero a partir do qual começa a extração. Os elementos são extraídos até, mas não incluindo, o índice base zero dado por fim. Se este não é indicado, a operação se dá até o final da seqüência.A função não altera o objeto original. Os valores são copiados para a nova array.

Exemplo (escreve: “baixo,médio,alto”):

nivel = new Array("muito baixo","baixo","medio","alto","muito alto");
document.write(nivel.slice(1,4);

sort(func_comp)

Ordena os elementos de uma array segundo o critério da função de comparação func_comp. Se esta não é dada, a ordenação se dá como se fosse um dicionário. No caso de strings de texto, em geral essa operação é desejada. No caso de números, pode não ser, uma vez que, por exemplo, 12 fica antes de 4.A função de comparação deve ser uma do tipo comparar(a,b) tal que:
– se retornar valor < 0, b fica em índice menor que a.
– se retornar valor = 0, a e b não mudam de índice.
– se retornar valor > 0, b fica em índice maior que a.

Para comparar números, a função pode ser simplesmente:

function comparar(a, b){
return a - b;
}

Exemplo:

function comparar(a, b){
return a - b;
}
num = new Array("11", "10", "7", "8", "9");
document.write(num.sort());
//escreve 10,11,7,8,9
document.write("<br>");
//avança uma linha
document.write(num.sort(comparar));
//escreve 7,8,9,10,11

splice(iniNdx, quant, [elm1][, …, elmN])

Muda o conteúdo de uma array, adicionando novos elementos e removendo outros.iniNdx é o índice base zero a partir do qual a operação começa.

quant é um inteiro indicando o número de elementos a remover. Se é zero, nenhum elemento é removido, mas deve ser indicado pelo menos um novo elemento.

elm1 … elemN são os novos elementos a adicionar. Se não indicados, a função apenas remove elementos.

Se o número de elementos a adicionar é diferente do número de elementos a remover, o tamanho da arrray é alterado. A função retorna uma array com os elementos removidos.

Exemplos:

num = new Array("10", "20", "30", "40");
document.write(num);
//escreve 10,20,30,40
document.write("<br>");
//avança uma linha
de_fora = num.splice(2,0,"25");
document.write(num);
//escreve 10,20,25,30,40
document.write("<br>");
//avança uma linha
de_fora = num.splice(2,1,"28");
document.write(num);
//escreve 10,20,28,30,40
document.write("<br>"); //avança uma linha
document.write(de_fora);
//escreve 25

toString()

Retorna uma string com os elementos dispostos seqüencialmente e separados por vírgula.Exemplo:

num = new Array("10", "20", "30", "40");
str = num.toString();
//str contém “10,20,30,40”

unshift(elm1,…, elmN)

Adiciona um ou mais elementos no início da array e retorna seu novo tamanho. Os parâmetros (elm1, …, elmN) são os novos elementos.Exemplo:

nivel = new Array("baixo","medio","alto","muito alto");
nivel.unshift("muito baixo");
document.write(nivel);
//escreve “muito baixo,baixo,medio,alto,muito alto”

fonte: http://www.mspc.eng.br/info/jscriptArray.shtml

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: