nao deixe nada pra amanha, ou melhor, pra depois de amanha.pois o desespero e imperfeito, enquanto a calma encontra a perfeicao.quem espera, nao perde nada, apenas adia.entendeu, ADIA? e contando... Me leve pra onde o vento faz a curvaBem pra longe, suficientemente longe de voceE toda hora a vida passa em minha frenteNao importa o que vai acontecerAcertar ou errar, insisto em continuar.Deixo coisas para trasCarrego meus sentimentosTrago as dores para frente do meu egoBato com forca e deixo passarPosso deixar as coisas como estao?Realmente.'Tudo ou nada' sobrenome.'Teimoso', meu nome.Prazer, ignorantes. Pessoal,Os Adwares sao programas que exibem anuncios na sua tela sem a sua autorizacao.Quando instalamos programas pode ocorrer desses adwares virem junto sem que a gente perceba e ai comecam as chateacoes, os navegadores ficam explodindo propagandas na nossa cara!Tive esse problema e utilizei alguns softwares especializados para tentar limpar minha maquina, muitos nao conseguiram, mas o Reason Core Security fez otimo trabalho!Entao fica a minha dica se voce estiver com esse probleminha! Trabalhei com um sistema feito na epoca do Sql Server 2000, ele tem muitas consultas utilizando comandos como *= e =*.Ate a versao Sql Server 2008 R2, pelo menos em teoria, isso nao era problema, pois bastava alterar o nivel de compatibilidade do banco de dados para o nivel 80 por meio do comando:sp_dbcmptlevel 'Nome da Base de dados', 80 e estava tudo bem, o sistema e o banco se comunicavam tranquilamente!Ai a Microsoft resolveu descontinuar alguns comandos no Sql Server 2012, e para minha infelicidade esses os comandos citados acima estao no bolo. O nivel de compatibilidade minima do Sql Server 2012 e o 90 que e compativel com o Sql Server 2005.Para resolver esse problema a solucao foi varrer o codigo fonte do sistema e sair alterando todos os relacionamentos para o padrao ANSI SQL.Como eu precisei estuda-los porque nao lembrava mais a sintaxe, eu vou compartilhar aqui um resumo explicando os tipos de Join. Para facilitar a explicacao e o entendimento, vou demonstrar com duas tabelas ficticias Fornecedor e Pagamento representadas a seguir:Percebam que o fornecedor de codigo 1 nao possui registro na tabela de Pagamento.Os tipos de Join sao os seguinte:Inner Join: Somente os registros das duas tabelas, que possuem o mesmo valor para um determinado campo sao retornados. (Como resultado ambas as consultas irao trazer apenas os registros dos fornecedores de codigo 2 e 3.)Exemplo:Select * from fornecedor inner join pagamento on pagamento.cod_fornecedor = fornecedor.cod_fornecedorOutra forma:Select * from fornecedor ,pagamento Where pagamento.cod_fornecedor = fornecedor.cod_fornecedorCross Join: Ele simplesmente obtem todos os registros de todas as tabelas e faz o produto cartesiano.Exemplos:Select * from fornecedor,pagamentoAntigamente podia ser feito dessa forma, mas nao esta no padrao ANSI SQL:Select * from fornecedor,pagamentoWhere pagamento.cod_fornecedor *=* fornecedor.cod_fornecedorOuter Join: Retornam os registros das duas tabelas que possuam alguma relacao e tambem os registros que nao entram nesta relacao.Como estava no sistema:Select * from fornecedor,pagamentoWhere pagamento.cod_fornecedor =* fornecedor.cod_fornecedorTransformando a consulta acima para o Padrao SQL ANSI:Select * from fornecedor left outer join pagamento on pagamento.cod_fornecedor = fornecedor.cod_fornecedorHa uma equivalencia em termos de funcionalidade na ordem em relacao as tabelas, e nao