quarta-feira, 20 de agosto de 2014

Como fazer um SELECT em um XML no SQL SERVER

Como fazer um SELECT em um XML no SQL SERVER


DECLARE @CodigoReferencia VARCHAR(50),
        @PrecoAnterior    DECIMAL(10,2),
        @PrecoVenda  DECIMAL(10,2),
        @PrecoCusto  DECIMAL(10,2),
        @IdSku  INTEGER,
        @skus AS XML

SET @skus = '<sku>
<CodigoReferencia>519871703</CodigoReferencia>
<PrecoAnterior>161.88</PrecoAnterior>
<PrecoVenda>171.88</PrecoVenda>
</sku>'

DECLARE cursor_xml_sku CURSOR FOR
SELECT
@skus.value('(/sku//CodigoReferencia/node())[1]', 'VARCHAR(50)') as CodigoReferencia,
@skus.value('(/sku//PrecoAnterior/node())[1]', 'DECIMAL(10,2)') as PrecoAnterior,
@skus.value('(/sku//PrecoVenda/node())[1]', 'DECIMAL(10,2)') as PrecoVenda
FROM @skus.nodes('/sku') as ParamValues(VALOR)
-- Abrindo Cursor para leitura - cursor_xml_sku
OPEN cursor_xml_sku

-- Lendo a próxima linha - cursor_xml_sku
FETCH NEXT FROM cursor_xml_sku INTO @CodigoReferencia, @PrecoAnterior, @PrecoVenda

-- Percorrendo linhas do cursor (enquanto houverem) - cursor_xml_sku
WHILE @@FETCH_STATUS = 0
BEGIN

DECLARE cursor_sku CURSOR FOR
    SELECT IdSKU,PrecoCusto FROM Sku WHERE CodigoReferencia = @CodigoReferencia

-- Abrindo Cursor para leitura - cursor_sku
OPEN cursor_sku

-- Lendo a próxima linha - cursor_sku
FETCH NEXT FROM cursor_sku INTO @IdSKU, @PrecoCusto

-- Percorrendo linhas do cursor (enquanto houverem) - cursor_sku
WHILE @@FETCH_STATUS = 0
BEGIN

-- Validações
IF (@PrecoCusto < @PrecoAnterior AND @PrecoCusto < @PrecoVenda)
BEGIN

SELECT @PrecoCusto, @PrecoAnterior, @PrecoVenda, @IdSKU

-- Atualizar Preço de Venda e Preço Anterior
UPDATE Sku
SET PrecoAnterior = @PrecoAnterior,
PrecoVenda = @PrecoVenda
WHERE IdSKU = @IdSku

END

-- Lendo a próxima linha - cursor_sku
FETCH NEXT FROM cursor_sku INTO @IdSKU, @PrecoCusto
END

-- Fechando Cursor para leitura - cursor_sku
CLOSE cursor_sku

-- Desalocando o cursor - cursor_sku
DEALLOCATE cursor_sku

    -- Lendo a próxima linha - cursor_xml_sku
    FETCH NEXT FROM cursor_xml_sku INTO @CodigoReferencia, @PrecoAnterior, @PrecoVenda
END

-- Fechando Cursor para leitura - cursor_xml_sku
CLOSE cursor_xml_sku

-- Desalocando o cursor - cursor_xml_sku
DEALLOCATE cursor_xml_sku

sexta-feira, 17 de janeiro de 2014

Como fazer um RESTORE no SQL SERVER 2008 usando sql command

Quando eu tentei fazer o restore usando o wizard do sql server eu recebi uma mensagem de erro.



Para resolver este problema eu abri uma New Query, mudei para o bando de dados diferente do que eu desejava fazer o restore e executei o seguinte comando:

RESTORE DATABASE MyDatabase FROM DISK='d:\arquivo.bak' with replace



Pronto! Banco restaurado! Muito Obrigado e até o próximo POST!

sexta-feira, 3 de janeiro de 2014

JQuery - Como pegar o item selecionado do auto complete

Fazer o auto complete com jquery é relativamente simples, agora pegar o item selecionado é mais simples ainda. Segue o código:

$("#NomeAtivo").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: '@Url.Action("GetAtivo", "Ordem")',
                    dataType: "json",
                    data: {
                        term: request.term,
                        idTipoAtivo: $("#TipoAtivo").val()
                    },
                    success: function (data) {                      
                        response(data);
                    }
                });
            },
            min_length: 3,
            delay: 300,
            select: function (a, b) {
                if ($("#TipoAtivo").val() == 5) {                  
                    $.ajax({
                        url: '@Url.Action("CarregaPrecoExercicio", "Ordem")',
                        dataType: "json",
                        type: "POST",
                        data: {
                            codigoAtivo: b.item.value
                        },
                        success: function (data) {                          
                            $("#PrecoExercicio").val(data);
                        }
                    });

                }              
            }
        });

Muito Obrigado e até o próximo POST!

quinta-feira, 2 de janeiro de 2014

Como saber se um acoluna já existe em uma tabela no SQL Server

Extsre duas formas de verificar se uma coluna já existe em uma tabela:

1 - Procedure do Sistema:

sp_columns @table_name = ´TABELATESTE´, @column_name = ´CAMPOTESTE´

2 - Select simples:

IF ((select count(name) from syscolumns where id=object_id(N'[dbo].[OrdemGrupo]') and name='ValorMedio') > 0)
BEGIN
ALTER TABLE OrdemGrupo
DROP COLUMN ValorMedio
END

Fonte: http://www.devmedia.com.br/forum/saber-se-uma-coluna-existe-na-tabela/34378

Javascript - Converter número para o formato moeda (Real)

Number.prototype.formatMoney = function(c, d, t){

var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
   return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};

// usando
(1000).formatMoney(2, ',', '.');

//retorna 1.000,00
Fonte: http://stackoverflow.com/questions/149055/how-can-i-format-numbers-as-money-in-javascript

quarta-feira, 1 de janeiro de 2014

W-Fi de graça

Quantas vezes você já não precisou acessar a internet na rua e ficou sem saber onde ou como.

E para completar encontra várias redes de Wi-Fi bloqueadas com senha. Na minha opinião todos deveriam deixar suas redes liberadas para que qualquer um pudesse acessar.

Enfim, segue o link que um aplicativos muito interessante para descobrir senhas de lugares públicos:

http://www.techtudo.com.br/tudo-sobre/s/mandic-magic.html

Fonte: http://www.techtudo.com.br/noticias/noticia/2013/12/saiba-onde-achar-wi-fi-gratis-em-sao-paulo-e-no-rio-de-janeiro.html

Gerenciador de Arquivos gratuito e sem limite de armazenamento

No primeiro POST do ano quero lhes apresentar o MINHATECA, que permite que o usuário armazene arquivos sem limite e na nuvem. Grande dica para quem tem que criar varias contas no Dropbox para conseguir armazenar seus arquivos todos.

Segue o link e aproveite: http://www.techtudo.com.br/tudo-sobre/s/minhateca.html

Muito Obrigado e até o próximo POST!