Embed or link this publication
Description
p. 2
sumário 04,07 e 11 sql azure edição 13 número 13 ano 04 2010 editores alexandre tarifa diego nogare emerson facunte sergio gonçalves revisÃo felipe pocchini fernanda sallai montagem formataÇÃo milton carvalhaes editoraÇÃo e diagramaÇÃo adriano almeida fernanda sallai colaboradores caio azevedo diego nogare eduardo bergantini pint felipe pocchini fabiano neves amorim josé heberton vilela de melo laerte junior introdução a sql azure database plataforma de bando de dados relacionais baseada em nuvem por diego nogare 15 aplicações com n camadas em asp .net parte ii segunda parte do artigo aplicando conceitos de camadas em asp.net por felipe pocchini 20 filestream conheça esta nova feature do microsoft sql server 2008 por eduardo bergantini pint 23 utilizando a proprieadade identity insert e dbcc checkident conheça as propriedades entidades no banco de dados por josé heberton vilela de melo para tratar fale com editor É muito importante para a equipe saber a sua opinião sobre a revista caso tenha alguma critica sugestão ou elogio entre em contato caso tenha interesse em publicar um artigo na revista envie o título e um resumo do tema em formato word site@codificandomagazine.net 28 o paradigma fillfactor veja um exemplo detalhado na utilizando conceitos deste paradigma por laerte junior pratica 43 sql reporting service 2005 parte iii continuação do artigo explorando microsoft sql reporting service 2005 por caio azevedo produzido por 53 introdução ao query processor saiba mais sobre o responsável por calcular a maneira mais eficiente de acesso aos dados no sql server www.codificando.net por fabiano neves amorim 03 editorial 66 .close[close]
p. 3
edição 13 número 13 ano 04 2010 editorial mais um ano de muitas conquistas se acabou e um novo ano cheio de novidades começa agora em 2009 a equipe da revista foi sensacional o nosso time está cada vez mais forte e profissionalizado cada um dos integrantes é peça fundamental no nosso trabalho na revista e seu trabalho é muito importante para que possamos entregar esse conteúdo para vocês neste ano de 2010 muitas ferramentas do nosso mundo serão lançadas em rtm nos possibilitando ter mais agilidade nas atividades e ganho de tempo em nosso dia-a-dia tenho certeza que muitos de nós conquistarão patamares que estão sendo galgados a tempos realizando sonhos e desafios que ficaram pendentes de 2009 neste ano teremos o lançamento oficial do visual studio 2010 do windows azure do office 2010 sharepoint 2010 e algumas outras ferramentas viram só quantas novidades teremos agora e como nós do codificando .net sempre fazemos montaremos eventos presenciais e on-line para poder mostrar à vocês estas novas ferramentas e novidades da nossa área quero deixar um agradecimento especial à todos que nos acompanham lendo esse material e aos nossos colaboradores que dispendem de tempo valioso pra ajudar a divulgar tecnologia escrevendo não poderia esquecer de forma alguma do time de profissionais que fazem esse trabalho acontecer o time de editores da revista um grande abraço e muitas conquistas em 2010 família codificando .net valeu gente diego nogare site@codificandomagazine.net[close]
p. 4
e-magazine sql azure database introdução sql server 2008 por diego nogare o sad sql azure database é uma plataforma de banco de dados relacionais baseado na nuvem este conceito de nuvem pode ser uma novidade para alguns mas há algum tempo já vem sendo noticiado por muitas outras tecnologias na microsoft é principalmente citado quando se fala em plataforma azure computação na nuvem é um conceito no qual os aplicativos e/ou serviços ficam hospedados na web não mais em um servidor local e proprietário e pode ser acessado normalmente pelos usuários da aplicação É um serviço de alta disponibilidade que muitas grandes empresas de tecnologias estão investindo hoje em dia alguns benefícios que favorecem a expansão deste tipo de tecnologia na nuvem vão de escalabilidade alta-disponibilidade até segurança com os recursos de proteção de dados através de infra-estrutura todos estes investimentos/gastos são de responsabilidades do provedor de serviço que está disponibilizando a tecnologia na nuvem diminuindo o gasto com hardware por parte da empresa que utilizará o serviço a microsoft está apostando alto neste conceito de computação na nuvem e a plataforma azure é uma prova viva disso ou virtual como queiram rs uma das áreas de estudo dentro da plataforma azure é o sad sql azure database lembram que como o nome já sugere é um banco de dados relacional hospedado na nuvem utilizar um serviço na nuvem não obriga você a eliminar seu parque computacional local pelo contrário alguns serviços serão mais compensadores se utilizar o que já tem hoje em seu datacenter na minha concepção vamos utilizar o sad quando uma aplicação precisar utilizar banco de dados e o cliente não tem o servidor de banco de dados local e nem quer comprar este servidor neste caso a saída ideal seria utilizar o serviço na nuvem mas quando uma empresa já tem o banco local e tem infra-estrutura suficiente para rodar a aplicação localmente não é necessário contratar os serviços da microsoft só pra constar estes datacenters da microsoft são bem grandes por volta de uns 50km² cada um e com vários servidores blade virtualizados isso significa que provavelmente você terá um servidor lógico rodando windows server 2008 e sql server 2008 mas a máquina física será uma só pra um dez jan 2010 codificando.net e-magazine www.codificando.net 4[close]
p. 5
sql azure database introdução sql server 2008 e-magazine monte de servidores lógicos depois desta historinha introdutória sobre o azure vamos nos conectar a nuvem primeiro passo a ser realizado para se trabalhar com o azure é se cadastrar no portal após este cadastro que é gratuito durante seu período de ctp será possível acessar e estudar todos os serviços azure para fazer este cadastro será necessário ter em mãos seu liveid que é o mesmo e-mail e senha utilizados para acessar o hotmail ou seu messenger para realizar o cadastro acesse o link http portal.ex.azure.microsoft.com default.aspx e vá até o item do microsoft connect 1 nesta página então siga os passos para se cadastrar gratuitamente após o cadastro volte a página inicial e acesse o item sign up 2 acompanhe na figura 1 onde estão estes itens qualquer que seja fácil para lembrar-se durante o desenvolvimento neste caso foi utilizado ssds-sql-magazine-brasil logo mais embaixo tem uma caixa 3 que precisa ser marcada para avançar na criação da solução após preencher estes dois itens clique em create soluction 4 veja na figura 2 onde localizar estes processos figura 2 preenchendo os campos necessários da solução figura 1 localizando o microsoft connect no site acessando o sign up será possível visualizar os recursos da plataforma azure disponíveis 1 então localize a caixa de texto que pergunta o nome da sua solução 2 dê um nome sugestivo após esta etapa do processo uma atualização automática da página acontecerá e rolando a tela para baixo mostrará sua senha2 para utilização do serviço dois detalhes importantes primeiro é que o serviço não ficará disponível imediatamente é necessário acessar um link 1 para validar a criação após o cadastro e então utilizar os serviços da plataforma azure segundo detalhe é que as soluções são únicas logo não será possível criar outra solução com o mesmo nome utilizado neste exemplo veja na figura 3 onde localizar a senha gerada codificando.net e-magazine www.codificando.net dez jan 2010 5[close]
p. 6
sql azure database introdução sql server 2008 e-magazine figura 3 senha informada pelo sistema ao acessar o link de confirmação uma mensagem de sucesso é informada e sua solução é apresentada do lado direito da tela 1 ao clicar sobre sua solução é possível gerenciar alguns itens inclusive a alteração da senha para alterar a senha é necessário acessar o item solution credentials 1 [figura 4 e em seguida expandir o menu de solution password 1 na sequência informe a nova senha e confirme 2 [figura 5 por fim clique em save 3 e se o resultado for satisfatório a mensagem de que a senha foi atualizada com sucesso 4 deve aparecer acompanhe a figura 4 e 5 para encontrar estes itens no site figura 5 passos para alteração de senha depois do cadastro e algum tempo pra validar seus dados será enviado um e-mail para seu endereço cadastrado validando sua conta o e-mail que é enviado é assinado pela conta ssdstlk@microsoft.com libere ele em seu cadastro de spam com o título sql azure invitation veja a figura 6 a caixa de entrada com o e-mail recebido neste e-mail vem os passos a serem seguidos para se iniciar o trabalho com o azure passando um código de validação e também alguns links para ajudar no seu desenvolvimento codificando.net e-magazine figura 6 e-mail de confirmação do azure figura 4 gerenciamento das soluções nesta primeira parte da sequência de artigos sobre sad foi explicado um pouco sobre o serviço na nuvem e como se cadastrar para utilizar o serviço o próximo artigo será sobre como criar a primeira aplicação com o sad hospedando nosso banco na nuvem diego nogare graduado em ciência da computação pós-graduado em engenharia de computação com ênfase em desenvolvimento web com .net colaborador do portal linha de código e da revista sql magazine líder do grupo de usuários codificando .net líder dos microsoft student partners [msp de são paulo e microsoft most valuable professional [mvp em sql server possui certificações mcp e mcts em sql server 2005 é palestrante em eventos da microsoft codificando .net e ineta br mantém o site www.diegonogare.net www.codificando.net dez jan 2010 6[close]
p. 7
e-magazine conectando ao sad sql azure database sql server 2008 por diego nogare no primeiro artigo sobre sad http www.linhadecodigo.com.br/artigo.aspx id=2493 foi explicado superficialmente o que é o sql azure database e como criar nossa conta na nuvem depois de receber o e-mail de confirmação que pode demorar alguns dias para chegar vamos nos conectar ao sad e começar de fato a trabalhar na nuvem os pré-requisitos para trabalhar nestes exemplos são poucos basicamente é necessário aquele e-mail de confirmação com seu código de validação do azure uma conta ativa na live e também ter alguma versão do ssms 2008 sql server management studio 2008 neste caso utilizaremos a versão express que pode ser baixada gratuitamente aqui http www.microsoft.com/downloads details.aspx displaylang=en&familyid=08e52ac2-1d6245f6-9a4a-4b76a8564a2b lendo o e-mail de confirmação temos as instruções que inicia pedindo para nos conectarmos ao site https sql.azure.com utilizar nossa conta da live para a primeira credencial e em seguida colocar o invitation code que foi fornecido através do e-mail veja a figura 1 o site da azure onde será inserido o código após a inserção do código válido no site e clicando em submit é necessário aceitar os termos de uso clicando em i accept após este passo vamos definir as credenciais de acesso à nossa base do sql azure database veja a figura 2 a partir deste momento o sad se comportará parecido como uma instancia do sql podendo realizar quase todas as atividades que se faz em uma instância local codificando.net e-magazine figura 1 local pra inserção do invitation code www.codificando.net dez jan 2010 7[close]
p. 8
conectando ao sad sql azure database sql server e-magazine de bases de dados também é possível ver a string de conexão para acessar o sad através de algum cliente do sql e trabalhar remotamente veja a figura 4 o que tem quando se clica no link manage figura 2 credenciais para conexão ao sad É interessante manter a localização como usa_northwest pois estamos trabalhando com uma versão ctp outra localização pode ser que dê algum resultado diferente figura 4 bases de dados na instância criada após inserir os dados das credenciais e clicar em create server uma instância do sql será criada nos servidores deles e poderemos acessar a qualquer momento veja a figura 3 a instância criada quando clicamos no botão connection string um pop-up é aberto e as strings de acesso ao sad são mostradas É só copiar a string do tipo de fonte que será acessada a nossa instância na nuvem e então trabalhar na nossa aplicação cliente preferida veja a figura 5 as strings de conexões para a aplicação que criamos neste exemplo codificando.net e-magazine figura 3 a instância do sql na nuvem para gerenciar nossas bases na instância podemos acessar o link manage que está à direita da tela e realizar a criação figura 5 string de conexão da instância www.codificando.net dez jan 2010 8[close]
p. 9
conectando ao sad sql azure database sql server e-magazine agora que já temos a instância criada e a string de conexão vamos utilizar o ssms 2008 express pra acessar a nossa base na nuvem e trabalhar com o sql server hosteado pela microsoft em seus datacenters após abrir o ssms por padrão já é exibida a tela de login pelo sad ainda ser uma versão ctp ainda não é possível realizar a conexão por esta tela inicial mas na versão rtm do sad será bem provável que vamos conseguir conectar sem maiores problemas por não efetuar o login nesta tela vamos clicar em cancel 1 e em seguida em new query 2 acompanhe na figura 6 a ordem a ser clicada e onde estão os botões você criou e no campo password forneça a senha criada após isso clique em connect e o ssms se conectará à sua instância na nuvem caso dê algum erro de conexão será necessário habilitar o a conexão por tcp/ip no configuration manager figura 7 autenticação real ao sad figura 6 forma de conexão ao azure outro ponto de atenção por se tratar de uma versão ctp do sad um erro sempre é apresentado ao se conectar com o ssms É só clicar em ok e prosseguir com o estudo como se nada tivesse acontecido o erro está apresentado na figura 8 codificando.net e-magazine após clicar em new query item 2 da figura 6 uma outra tela de login que é exibida na figura 7 é mostrada se sua tela aparecer diferente desta apresentada no artigo clique em options no final da sua tela de login que ficará igual à essa nos itens marcados de vermelho insira os dados da string de conexão fornecidos se precisar consulte a figura 5 no campo server name insira o endereço do seu servidor na nuvem no campo login coloque o usuário que figura 8 erro aceitável ao se conectar no sad através do ssms agora que já está conectado ao servidor sql hospedado na nuvem pode-se fazer um teste simples consultando a versão do servidor sql instalado fazendo uma busca no azure select version é possível ter www.codificando.net dez jan 2010 9[close]
p. 10
conectando ao sad sql azure database sql server e-magazine esse retorno veja a figura 9 figura 9 consulta ao servidor da nuvem no próximo artigo sobre sad vamos criar um banco de dados através do ssms e consultar no gerenciador web do azure diego nogare graduado em ciência da computação pós-graduado em engenharia de computação com ênfase em desenvolvimento web com .net colaborador do portal linha de código e da revista sql magazine líder do grupo de usuários codificando .net líder dos microsoft student partners [msp de são paulo e microsoft most valuable professional [mvp em sql server possui certificações mcp e mcts em sql server 2005 é palestrante em eventos da microsoft codificando .net e ineta br mantém o site www.diegonogare.net codificando.net e-magazine www.codificando.net dez jan 2010 10[close]
p. 11
e-magazine criando primeiro db com sad sql azure database sql server 2008 por diego nogare depois de nos cadastrarmos nos serviços da azure http www.linhadecodigo.com.br/artigo.aspx id=2493 e fazer nossas conexões no sad http www.linhadecodigo.com.br artigo.aspx?id=2518 chegou a hora de criarmos o primeiro banco de dados e ver a interação entre a nuvem e uma aplicação cliente quando nos conectamos através do ssms sql server management studio ao sad precisamos nos atentar à alguns detalhes por se tratar de uma versão ctp por exemplo a forma de se conectar e em qual banco de dados será por padrão quando nos conectamos ao sad através do ssms fazemos a conexão à base master para exemplificar alguns detalhes vou abrir uma instância do ssms 2008 express e me conectar ao banco de dados default do meu sad e após a conexão vou verificar todos os databases criados lá no meu servidor na nuvem esta consulta pode ser acompanhada na figura 1 figura 1 verificando os databases que temos na nuvem já que estou conectado na base de dados master que é a única base de dados que tenho no momento vou criar um novo database pra exemplificar o restante do artigo vou utilizar uma sintaxe básica create database dblinhadecodigo pra criar o banco 1 e vou conferir no serviço on-line do azure 2 para assegurar que realmente está lá confira a figura 2 estes itens codificando.net e-magazine figura 2 criação do banco de dados e verificação no www.codificando.net dez jan 2010 11[close]
p. 12
criando primeiro db com sad sql azure database sql e-magazine agora que já criamos uma nova base de dados no azure vamos ver os segredos para nos conectar à ela como já dito algumas vezes estamos em uma versão ctp do azure então pra realizar tarefas corriqueiras que fazemos de uma forma quando trabalhamos com um sql server qualquer no azure é um pouco diferente por exemplo pra conectar a algum database é necessário informar na tela de login e não utilizando a sintaxe use xxxxx ou alterando o combobox na ide do ssms e é esta conexão que faremos agora vamos para a tela de login de uma new query 1 informamos o server name login e password 2 e precisamos clicar em options 3 veja a figura 3 estas opções figura 4 escolha do database nas opções de conexão após se conectar à esta new query do sad na base que criamos vamos criar uma tabela e popular alguns registros lá dentro veja o código da criação da tabela na listagem 1 e inserção dos dados na listagem 2 create table tblartigo codigo int identity not null ,titulo nvarchar50 not null ,autor nvarchar30 not null ,resumo nvarchar100 create clustered index idxtitulo on tblartigotitulo codificando.net e-magazine figura 3 opções de conexão do ssms após clicar em options está nosso segredinho será necessário informar qual é o banco de dados que a instância se conectará informe o campo nome dblinhadecodigo no connect to database 1 e em seguida clique em connect 2 veja estes itens na figura 4 vejam que é necessário criar um index clustered pra poder inserir dados na tabela caso não tenham criado uma mensagem de erro será disparada e não persistirá os dados insert into tblartigo titulo autor resumo values sad criando banco diego nogare www.codificando.net dez jan 2010 12[close]
p. 13
criando primeiro db com sad sql azure database sql e-magazine neste artigo será criado o primeiro banco em sad insert into tblartigo titulo autor resumo values linq com vs2010 andrey sanches por ser amante de orientação à objetos o linq me fez figura 6 verificação das bases de dados existentes insert into tblartigo titulo autor resumo values novidades do vb 2010 alexandre tarifa analisando o roadmap do visual basic podemos após fazer algumas inserções vou disparar um select simples na tabela select from tblartigo pra constatar se os dados foram realmente inseridos e persistidos na nuvem pra visualizar os dados inseridos veja a figura 5 visto que agora já temos um database uma tabela e alguns dados na nuvem vamos remover este database criado através do gerenciador on-line do azure para mostrar que realmente existe uma integração entre a nuvem e sua aplicação cliente após a remoção da base vamos novamente fazer uma busca pra ver o que retorna acessando o gerenciador do azure selecionamos o radiobutton em frente ao nome da base de dados que desejamos remover e clicamos em drop database um pop-up de confirmação será apresentado aguardando sua autorização para remover o referido banco de dados após a confirmação não existirá mais a base que foi apagada veja o pop-up de confirmação na figura 7 codificando.net e-magazine figura 5 realizando um select na nuvem voltando ao início do texto a primeira verificação que foi feita neste artigo foi consultar as bases que tínhamos no servidor vamos realizar a mesma validação de antes mas agora sendo em algum momento após a criação da nova database veja o resultado na figura 6 figura 7 pop-up de confirmação de exclusão de base de dados www.codificando.net dez jan 2010 13[close]
p. 14
criando primeiro db com sad sql azure database sql e-magazine se fizer novamente a primeira verificação que foi realizada será constatado exatamente o mesmo retorno visto que não temos mais a base que foi criada somente a master após realizar todos os exemplos deste artigo pudemos ver como se conectar ao sad e criar um database uma tabela e alguns dados na nuvem após isso vimos como droparum banco de dados da nuvem e provar essa interação entre as partes diego nogare graduado em ciência da computação pós-graduado em engenharia de computação com ênfase em desenvolvimento web com .net colaborador do portal linha de código e da revista sql magazine líder do grupo de usuários codificando .net líder dos microsoft student partners [msp de são paulo e microsoft most valuable professional [mvp em sql server possui certificações mcp e mcts em sql server 2005 é palestrante em eventos da microsoft codificando .net e ineta br mantém o site www.diegonogare.net codificando.net e-magazine www.codificando.net dez jan 2010 14[close]
p. 15
e-magazine aplicações em n camadas com asp .net parte ii por felipe pocchini aplicações em n camadas são desenvolvidas de forma distribuída onde cada camada tem sua responsabilidade dentro do contexto para um modelo de aplicação web são comumente usadas 3 camadas presentationapresentação businesslógica do negócio e data responsável pelas transações com o banco da dados para esta segunda parte do artigo iremos criar a camada data que será responsável por todas as transações com o banco de dados neste artigo uma de suas grandes vantagens é que através dela podemos mudar a qualquer momento nosso sistema de banco de dados sem prejudicar a lógica do negocio para adicionar a camada ao projeto vamos clicar com o botão direito na solução e adicionar um novo projeto codificando.net e-magazine figura 2 adicionando um novo projeto a solução add new project figura 1 exemplo de aplicação em n camadas esse novo projeto vai ser do tipo class library pois aqui serão criadas somente as classes responsáveis pela comunicação com o banco de dados iremos adicionar a camada data juntamente com a primeira parte criada www.codificando.net dez jan 2010 15[close]
p. 16
aplicações em n camadas com asp .net parte ii e-magazine a classe clientes vai conter apenas um atributo e os métodos responsáveis pelas transações sql já que nossa entidade foi definida na camada entity como aprendemos na primeira parte deste artigo vamos criar um atributo que irá receber a string de conexão com o banco de dados figura 3 projeto do tipo class library connectionstring este é um atributo de uso exclusivo da classe clientes não sendo preciso criar uma propriedade para acessá-lo pois o mesmo já está encapsulado mais uma vez vamos contar com recursos do visual studio para facilitar nossa vida para a criação dos métodos com o projeto adicionado a solução podemos agora trabalhar na camada data da qual receberá uma entidade através da camada business executando as transações com o banco de dados figura 4 projeto criado figura 6 adicionando métodos na classe clientes add method vamos utilizar a opção view class diagram para criar a classe clientes da maneira que aprendemos na primeira parte deste artigo codificando.net e-magazine crie mais esses métodos seguindo os passos acima alterar excluir obter listar o resultado final será esse figura 5 visualizando o diagrama de classes da camada de data view class diagram figura 7 classe clientes com todos os métodos e atributos definidos www.codificando.net dez jan 2010 16[close]
p. 17
aplicações em n camadas com asp .net parte ii e-magazine para visualizar o código da classe clientes basta dar um duplo clique na classe agora vamos adicionar na classe clientes os namespaces system.data e system.data.sqlclient do framework para trabalharmos com as classes do ado.net figura 10 namespace system.data e system.data.sqlclient adicionados a classe vamos atribuir a string de conexão ao atributo connectionstring figura 11 atributo connectionstring recebendo figura 8 visualização do código da classe clientes como podemos ver na figura 8 os métodos da classe clientes foram criados porém não estão implementados neste caso como o foco é estudar aplicações em n camadas vamos agora implementar cada método sem a preocupação de estudar ado.net onde no final do artigo você encontra referências para aprofundar os conhecimentos sobre o mesmo para a camada data reconhecer uma entidade da camada entity é necessário adicionar a referencia da camada entity na camada data vamos implementar agora os métodos da classe clientes acompanhe abaixo inserir codificando.net e-magazine figura 12 implementação do método inserir figura 9 adicionando referencia da camada entity na camada data add reference projects ok www.codificando.net dez jan 2010 17[close]
p. 18
aplicações em n camadas com asp .net parte ii e-magazine alterar obter figura 13 implementação do método alterar figura 15 implementação do método obter excluir listar codificando.net e-magazine figura 14 implementação do método excluir figura 16 implementação do método listar concluímos que ao final de mais uma etapa teremos a classe clientes definida juntamente com a camada finalizada na www.codificando.net dez jan 2010 18[close]
p. 19
aplicações em n camadas com asp .net parte ii e-magazine terceira parte desse artigo vamos criar a camada de negócio business que ficará responsável pela comunicação e validação dos dados entre a apresentação presentation e a camada de dados data participe desse artigo deixando seu comentário aprofunde seus conhecimentos sobre esse tema na comunidade asp.net aprofunde seus conhecimentos sobre esse tema na comunidade ado.net para saber mais visão geral de aplicativo de dados n camadas ado.net até a próxima grande abraço a todos felipe pocchini felipe pocchini graduado em ciência da computação pela universidade josé do rosário vellano unifenas em alfenas mg trabalha com desenvolvimento de aplicações web e windows forms utilizando a tecnologia .net moderador da comunidade desenvolvendo para web colaborador da comunidade codificando.net e editor da revista eletrônica codificando .net e-magazine codificando.net e-magazine www.codificando.net dez jan 2010 19[close]
p. 20
e-magazine filestream a nova feature do sql server 2008 por eduardo bergantini pint entendendo o filestream o sql server sempre proveu a capacidade de armazenar dados binários assim você podia pegar qualquer tipo de arquivo e armazená-lo em uma coluna do tipo varbinary max no entanto um blob binary large object tem um padrão de usabilidade diferente de dados relacionais que são concatenados por meio de i/o e armazenados como dados estendidos não é possível fazer um streaming de um blob por causa dessa limitação a solução paliativa dos desenvolvedores era disponibilizar o arquivo em um diretório e apenas indicar o caminho no banco de dados que ainda sim é uma solução viável mesmo dispondo do filestream criando e utilizando o filestream por padrão o filestream vem habilitado na instância do sql server 2008 quando você vai criar o seu banco de dados deve apontar para ele onde ficará a armazenado o diretório do seu filestream create database [teste on primary name n teste_data filename n d teste data teste.mdf size 8mb maxsize unlimited filegrowth 16mb filegroup fgtestesave name n teste_data2 filename n d teste data_save teste.ndf size 8mb maxsize unlimited filegrowth 16mb filegroup fgtestedocuments contains filestream default name n teste_documents filename n d teste document log on name n teste_log filename n d teste log teste.ldf size 8mb maxsize 2048gb filegrowth 16mb go codificando.net e-magazine figura 01 diretório de criação do filestream antes de ser gerado na criação de um filestream repare bem que você deve apontar um diretório e não um arquivo dentro desse diretório serão criados os arquivos para filestream www.codificando.net dez jan 2010 20[close]
p. 21
filestream a nova feature do sql server 2008 e-magazine que será responsável pelo armazenamento desses arquivos create table [dbo testarmedia [testeid uniqueidentifier not null rowguidcol primary key [datacriacao datetime not null default getdate [criadopor nvarchar255 not null [filename nvarchar255 not null [tipoteste nvarchar255 not null [localizacao geometry null [arquivo varbinarymax filestream go figura 02 diretório do filestream criado pelo sql server 2008 mas e nos casos em que o banco de dados ainda não tem filestream nesse caso você utilizaria o seguinte código para dizer ao seu banco de dados criar a estrutura de filestream alter database [teste add filegroup fgtestedocuments contains filestream go alter database [teste add file name fs_filestream filename n d teste document to filegroup fgtestedocuments go alterando o banco de dados para aceitar filestream figura 03 criando uma tabela para utilizar o novo recurso colunas utilizando o filestream requerem a propriedade rowguildcol ela serve para o sistema de armazenamento manter traçado a instância do banco no filesystem um dos pontos positivos de utilizar o filestream para armazenar seus arquivos é que por estar dentro do sql server você não terá problema com perda de dados ou corrupção de dados a menos que tenha ocorrido na hora de ser inserido podendo assim recuperar seus dados em caso de catastrofes realizando um simples restore no banco fonte livro microsoft sql server 2008 codificando.net e-magazine a primeira vez que você for para o diretório document você encontrará alguns arquivos ntfs com guid s como nome e alguns arquivos principais com arquivos de log todo esse funcionamento serve para criar o namespace do filestream em seguida vamos criar a nossa tabela www.codificando.net dez jan 2010 21[close]
p. 22
filestream a nova feature do sql server 2008 e-magazine implementation and maintenance eduardo bergantini pint desenvolvedor .net à 2 anos pela empresa minhavida www.minhavida.com.br com ênfase em aplicativos web de alta performance membro e colaborador da comunidade codificando.net codificando.net e-magazine www.codificando.net dez jan 2010 22[close]
p. 23
e-magazine utilizando a propriedade identity_insert e dbcc por josé heberton vilela de melo nesse artigo farei uma breve demonstração sobre a propriedade identity_insert utilizada para permitir a inserção de valores explícitos na coluna de identidade de uma tabela demonstrarei também a utilização do dbcc checkident que serve para verificar o valor de identidade atual para a tabela especificada e se necessário altera o valor de identidade onde também é possível usar o dbcc checkident para definir manualmente um novo valor de identidade atual de uma coluna identidade É comum encontramos em entidades de um banco de dados colunas que são auto incremento estas são definidas pela propriedade identity com os seus respectivos valores seqüenciados geralmente quando executamos eventos de exclusão de registros nas entidades acaba se gerando intervalos indesejáveis se esta for uma preocupação não utilize a propriedade identity entretanto para que nenhum intervalo seja criado ou para preencher um intervalo existente causado por uma exclusão poderemos avaliar os valores de identidade existentes antes de inserir valores explicitamente poderá surgir o seguinte questionamento inserir valores manualmente em uma coluna que é auto incremento sim isso mesmo será possível realizar utilizando a propriedade set identity_insert definida para on digamos que criamos uma entidade com uma coluna que será auto incremento inserimos 4 registros nela e teremos a seguinte população na entidade conforme figura 1 idcliente 1 2 3 4 nocliente nome1 nome2 nome3 nome4 dacadastro 2009-09-23 2009-09-23 2009-09-23 2009-09-23 codificando.net e-magazine figura 1 entidade com a coluna auto incremento agora se excluirmos os dois últimos registros e inserirmos dois novos registros teríamos a seguinte população na entidade conforme figura 2 idcliente 1 2 5 6 nocliente nome1 nome2 nome5 nome6 dacadastro 2009-09-23 2009-09-23 2009-09-23 2009-09-23 figura 2 entidade com valores identidades fora de seqüência www.codificando.net dez jan 2010 23[close]
p. 24
utilizando a propriedade identity_insert e dbcc checkident e-magazine agora observe que a nossa entidade possui um intervalo entre o segundo e o terceiro registro isso é totalmente desagradável para quem gosta de manter seus registros organizados na sua base de dados para corrigirmos esse tipo de problema demonstrarei dois exemplos que ajudarão a reorganizar os registros da coluna idcliente criando uma entidade temporaria create table #tbidentity idcliente int identity1,1 primary key ,nocliente varchar35 not null ,dacadastro date defaultgetdate go registros e registros inserir mais dois novos removendo 2 registros da entidade #tbidentity delete from #tbidentity where idcliente 2 inserindo dois novos registros insert into #tbidentity nocliente dacadastro values nome5 getdate nome6 getdate nesse ponto teremos a seguinte situação na entidade temporária conforme figura 4 idcliente 1 2 5 6 nocliente nome1 nome2 nome5 nome6 dacadastro 2009-09-23 2009-09-23 2009-09-23 2009-09-23 populando a entidade #tbidentity com 4 registros insert into #tbidentity nocliente dacadastro values nome1 getdate nome2 getdate nome3 getdate nome4 getdate recuperando as informaÇÕes da entidade #tbidentity select from #tbidentity figura 4 entidade temporária com valores identidade fora de seqüência vamos agora inserir valores para que possamos preencher o intervalo entre o segundo e o terceiro registro mas para isso teremos que definir a propriedade set identity_insert para on essa propriedade permite que seja inserido explicitamente valores em uma coluna definida com a propriedade identity ou seja auto incremento vale lembrar que somente uma tabela em uma sessão poderá ter a propriedade identity_insert definida como on isso quer dizer que se uma entidade estiver com a propriedade definida como on e uma instrução set identity_insert on for emitida para outra entidade o sql server retornará uma mensagem de erro informando que set identity_insert já está definido como on codificando.net e-magazine nesse momento teremos a seguinte situação na entidade temporária conforme figura 3 idcliente 1 2 3 4 nocliente nome1 nome2 nome3 nome4 dacadastro 2009-09-23 2009-09-23 2009-09-23 2009-09-23 figura 3 entidade temporária com coluna auto incremento agora vamos excluir os dois últimos www.codificando.net dez jan 2010 24[close]
p. 25
utilizando a propriedade identity_insert e dbcc checkident e-magazine definindo a propriedade identity_insert para on set identity_insert #tbidentity on o valor default desta propriedade é off e é preciso específicar o nome da tabela na qual irá receber o valor da propriedade inserindo novos registros insert into #tbidentity idcliente ,nocliente dacadastro values 3 nome5 getdate 4 nome6 getdate inserindo novos registros ainda com a propriedade definida para on insert into #tbidentity idcliente ,nocliente dacadastro values 10 nome10 getdate com isso teremos a seguinte situação demonstrada na figura 6 idcliente 1 2 3 4 5 6 10 nocliente nome1 nome2 nome3 nome4 nome5 nome6 nome10 dacadastro 2009-09-23 2009-09-23 2009-09-23 2009-09-23 2009-09-23 2009-09-23 2009-09-23 observe que depois de definida a propriedade para on será preciso explicitar o nome da coluna e os valores no comando insert como mostra o exemplo t-sql anterior agora poderemos observar que o intervalo que tínhamos na entidade tbidentity entre o segundo e o terceiro registro foi preenchido corretamente conforme mostra a figura 5 idcliente 1 2 3 4 5 6 nocliente nome1 nome2 nome3 nome4 nome5 nome6 dacadastro 2009-09-23 2009-09-23 2009-09-23 2009-09-23 2009-09-23 2009-09-23 figura 6 entidade temporária com valor identidade inserido manualmente agora vamos definir a propriedade identity_insert para off definindo a propriedade identity_insert para off set identity_insert #tbidentity off inserindo um novo registro insert into #tbidentity nocliente dacadastro values nome11 getdate codificando.net e-magazine figura 5 entidade temporária com valores identidade seqüenciados corretamente uma observação importante é que se for explícito um valor maior que o valor de identidade atual na entidade o sql server usará esse novo valor como o valor de identitade atual ou seja se for explícito o valor 10 no comando insert e se você modificar o valor da propriedade identity_insert de on para off e inserir um novo valor o valor da coluna identidade receberá o valor 11 conforme demonstrado no código abaixo depois de executado esse comando tsql teremos a seguinte situação demonstrada na figura 7 comprovando a teoria explicada anteriormente idcliente 1 2 3 4 5 6 10 11 nocliente nome1 nome2 nome3 nome4 nome5 nome6 nome10 nome11 dacadastro 2009-09-23 2009-09-23 2009-09-23 2009-09-23 2009-09-23 2009-09-23 2009-09-23 2009-09-23 figura 7 entidade temporária com valor identidade inserido automaticamente www.codificando.net dez jan 2010 25[close]
Comments
no comments yet

























