Pessoal,
Agora o meu blog está no endereço www.andrenobrega.com.br. Espero vocês lá.
abraços
Bom dia pessoal, há uns dias atrás tive que comparar duas bases, source e destino, após uma importação. Então crie uma stored procedure que comparasse as duas bases levando em consideração a quantidade de registros, linhas, e a estrutura, colunas, das tabelas. Para fazer essa procedure eu tive a necessidade de criar cursores dinâmicos. Hoje eu vou mostrar como criar cursores dinâmicos numa stored procedure.
Exemplo:
Declare @statement varchar(255)
SELECT @statement = ‘DECLARE c CURSOR FOR Select convert(varchar, isnull(count(*), 0)) from dbo.’ + @tabela
EXEC(@statement) open c fetch next from c into @linhas
Close c
Deallocate c
SELECT @statement = ‘DECLARE d CURSOR FOR Select convert(varchar, isnull(count(*), 0)) from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ”’ + @tabela + ””
EXEC(@statement) open d fetch next from d into @colunas
Close d
Deallocate d
Abs, André
Boa tarde amigos,
Um recurso muito interessante no Visual Studio é a possibilidade de debugar stored procedures. Com isso você ganha um incrível nível de produtividade, além de encontrar os erros mais facilmente. Para debugar stored o seu usuário do Windows deve ter permissão como sysadmin no banco de dados. Para dar essa permissão vá até o Sql Server conecte-se ao banco onde estão as procedures, na janela Object Explorer, expanda a pasta Security e clique com o botão direto em Logins.
Clique em New Login.
Em Login name informe domínio\user e selecione a opção Windows authentication.
Vá em Server Roles e selecione o privilégio sysadmin.
Vá em User Mapping, selecione o banco de dados onde estão as procedures e informe que o usuário pertencerá os determinados grupos: db_datareader, db_datawriter, db_owner e public.
Clique em Ok.
Pronto. Agora o seu usuário do Windows tem permissão para debugar. Agora vamos de fato a ação.
Abra o Visual Studio, Clique em View>Server Explorer. Na Janela Server Explorer, na opção Data Connections, clique em add connections. Informe o nome do servidor, o tipo de Log on selecione Windows authentication e selecione o banco de dados. Teste a conexão para ver se está tudo certo e clique em ok.
Observer que será adicionado um database em Data connections. Expanda as opções do database até conseguir visualizar as suas storeds. Clique com o botão direito na procedure e selecione a opção Step Into Stored Procedure. Caso seja necessário passar variável para a procedure, uma janela será aberta e você deve dar valor as variáveis. Não esqueça de colocar um break-point no ponto onde deseja debugar. Avance com o F10 e caso queira entrar dentro de uma função avance com F11. Parando o mouse em cima de uma variável é possível saber o seu valor.
Um abraço a todos, especialmente para a minha princesa Bianca, no próximo sábado fazemos um ano de namoro.
T+
Boa tarde pessoal,
Estou de volta depois de uma longa folga.
Hoje eu vou mostrar como fazer backups no Sql Server usando o agendador de tarefas do Windows.
Primeiro temos que criar um arquivo .sql com o comando de backup. O conteúdo do arquvo está abaixo:
BACKUP DATABASE dadosintra TO DISK = ‘\\servidor\pasta\nomedoarquivo’ WITH INIT
BACKUP LOG dadosintra TO DISK = ‘\\servidor\pasta\nomedoarquivo’ WITH INIT
Vou chamar esse arquivo de backup.sql.
Agora devemos criar um arquivo do tipo .bat que será acionado pelo agendador de tarefa do Windows. O conteúdo do arquivo está abaixo:
@echo off
echo Fazendo backup do banco de Dados
rem ————————————————————–
sqlcmd.exe -i backup.sql -U user -P senha -d banco -S instancia
rem ————————————————————–
Vou chamar esse arquivo de backup.bat.
Vá em Iniciar>Programas>Acessórios>Ferramentas do sistema>Tarefas agendadas
Clique em Arquivo>Novo>Tarefa agendada
Dê um nome a tarefa e clique duas vezes. No campo executar procure o arquivo backup.bat. Na aba agendar defina qual é o melhor data para fazer backup e a frêquência do mesmo.
um abraço,
Até breve.
Boa tarde meus amigos,
Hoje eu vou mostrar como renomear colunas e tabelas. No Sql Server 2005 existe a procedure sp_rename, você deve passar três argumentos: a coluna que deseja renomear, o novo nome e o tipo de objeto, no caso Column.
Exemplo.:
Temos a tabela cliente e nela uma coluna chamada id. Para alterar o nome da coluna de id para idCliente execute essa procedure:
EXEC sp_rename ‘dbo.cliente.id’, ‘idCliente’, ‘COLUMN’
Caso queira mudar o nome de todas as colunas do banco para uppercase, execute o select abaixo, copie e depois execute todas as procedures.
SELECT ‘EXEC sp_rename ”’ + TABLE_SCHEMA + ‘.’ + TABLE_NAME + ‘.’ + COLUMN_NAME + ”’, ”’ + UPPER(COLUMN_NAME) + ”’, ”COLUMN”’ FROM INFORMATION_SCHEMA.COLUMNS
Para renomear uma tabela não é necessário passar o tipo do objeto.
Exemplo:
EXEC sp_rename ‘dbo.cliente’, ‘Cliente’
Caso queira mudar o nome de todas as tabelas do banco para uppercase, execute o select abaixo, copie e depois execute todas as procedures.
select ‘EXEC sp_rename ”dbo.’ + NAME + ”’, ”’+ UPPER(NAME) +”” from sysobjects where xtype=‘U’ order by name
Para mais informações:
http://msdn2.microsoft.com/en-us/library/ms188351.aspx
abraços.
Boa tarde meus amigos,
Hoje eu vou mostar um utilitário realmente útil. Um conversor de txt para MP3. O programa é um executável que deve ser iniciado via Dos. Oba, é ai que entra o C#.
O primeiro passo é ter o Eloq 5.0. Faça download aqui. O segundo passo é ter o Testimp3. Faça download aqui.
Vá no Iniciar> Executar> cmd. Vá até a pasta onde está o executável TESTIMP3.EXE. Digite no Dos ‘TESTIMP3 /ECISETUP=C:\Eloq5′ – Endereço onde você descompactou o Eloq.
No diretório que está o TESTIMP3.EXE crie um .txt com o texto que você deseja converter para MP3. No cmd digite TESTIMP3 nomeDoArquivo.txt. No arquivo TESTIMP3.INI você pode definir o tom, tipo, idioma utilizado, entre outras coisas.
Se não acontecer nenhum erro será criado uma pasta com a MP3 dentro.
Ok, o TestiMp3 está funcionando. Agora vamos usar o C# para chamar o executável TESTIMP3.EXE, criar o txt, passar os parametros necessários e pegar o endereco do arquivo MP3. Vamos lá:
string texto = “teste”;
const string PastaTESTIMP3 = @”C:\TESTIMP3\”;
const string arquivoTXT = PastaTESTIMP3 + “Texto.txt”;
const string arquivoTestiMP3 = PastaTESTIMP3 + “TESTIMP3.exe”;StreamWriter sw = new StreamWriter(arquivoTXT);
sw.WriteLine(texto);
sw.Close();
Process.Start(arquivoTestiMP3, arquivoTXT);
Com essa função podemos tornar nossas páginas acessíveis a portadores de necessidades especiais, analfabetos ou para apredizagem de novos idiomas. Falow Pessoal.
Eae Pessoal,
Estou me preparando para fazer a prova 70-431 para me tornar MCTS em Sql Server. Lendo o livro MCTS 70-431 Self-Paced Training Kit eu encontrei um excelente exemplo de como criar uma trigger (gatilho) quando uma determinada tabela for alterada:
CREATE TRIGGER tu_employeepayaudit
ON dbo.Employee
FOR UPDATE
AS
DECLARE @now DATETIME
SET @now = getdate()
BEGIN TRY
INSERT INTO dbo.EmployeeAudit
(RowImage, PayRate, ChangeDate, ChangeUser)
SELECT ‘BEFORE’, INSERTED.PayRate, @now, suser_sname()
FROM DELETED
INSERT INTO dbo.EmployeeAudit
(RowImage, PayRate, ChangeDate, ChangeUser)
SELECT ‘AFTER’, INSERTED.PayRate, @now, suser_sname()
FROM INSERTED
END TRY
BEGIN CATCH
–Some error handling code
ROLLBACK TRANSACTION
END CATCH
att:
Uma função muito útil no dia-a-dia do desenvolvedor é a verificação de CPF.
Segue um código que válida se a string passada é de fato um CPF válido.
public static bool IsCPF(string cpf)
{
int[] multiplicador1 = new int[9] { 10, 9, 8, 7, 6, 5, 4, 3, 2 };
int[] multiplicador2 = new int[10] { 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 };
string tempCpf;
string digito;
int soma;
int resto;
cpf = cpf.Trim();
cpf = cpf.Replace(“.”, “”).Replace(“-”, “”);
if (cpf.Length != 11)
return false;
tempCpf = cpf.Substring(0, 9);
soma = 0;
for (int i = 0; i < 9; i++)
soma += int.Parse(tempCpf[i].ToString()) * multiplicador1[i];
resto = soma % 11;if (resto < 2)
resto = 0;
else
resto = 11 – resto;
digito = resto.ToString();
tempCpf = tempCpf + digito;
soma = 0;
for (int i = 0; i < 10; i++)
soma += int.Parse(tempCpf[i].ToString()) * multiplicador2[i];
resto = soma % 11;if (resto < 2)
resto = 0;
else
resto = 11 – resto;digito = digito + resto.ToString();
return cpf.EndsWith(digito);
}
flw
Eae pessoal,
Vou mostrar para vocês como encontrar o primeiro e último dia do mês usando C#.
DateTime mes = DateTime.Now;
DateTime primeiroDia = Convert.ToDateTime(“01/” + mes.ToString(“MM/yyyy”));
DateTime ultimoDia = primeiroDia.AddMonths(1).AddDays(-1);
abraços.
Coloquei na minha pasta compartilhada um webcast do MVP Fábio Vazquez falando sobre Linq. Vale a pena assistir.
bom dia a todos.