Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri OBJETIVOS DA AULA: • • • Fazer uma breve introdução a respeito do MS SQL Server 7.0; Criar uma pequena base de dados no MS SQL Server 7.0; Elaborar uma aplicação em Visual Basic que manipule a base de dados criada através do MS SQL Server 7.0. APLICAÇÕES PRÁTICAS: Que tipos de aplicações necessitam realizar um acesso a Banco de dados? O acesso a Banco de dados é necessário em todas as aplicações onde se faz necessário manter dados armazenados para futura reutilização. Qualquer tipo de cadastro é um exemplo típico, tais como cadastro de clientes, fornecedores, produtos etc. Um dos pré-requisitos para a utilização de uma base de dados é que ela seja independente das aplicações que as manipulem. Na prática isto quer dizer que um mesmo cadastro de cliente, por exemplo, pode ser manipulado por diferentes aplicações, sejam elas desenvolvidas em Visual Basic, Delphi, Java, C ou qualquer outra. Esta aula irá apresentar como uma aplicação em Visual Basic pode ser criada para acessar uma base de dados criada pelo MS SQL Server 7.0. DEFINIÇÕES: O MS SQL Server é um sistema de gerenciamento de Banco de dados cliente/servidor de alto desempenho com alta integração com o Windows NT, atualmente sendo muito adotado como solução corporativa (esta é uma definição da Microsoft). É importante informar que o MS SQL Server é um sistema muito complexo, porém vamos nos focar somente na criação da base de dados. CRIANDO UMA BASE DE DADOS: Para se criar uma base de dados no MS SQL Server pode ser utilizado o SQL Server Enterprise Manager. Para executá-lo acesse o menu Iniciar / Programas / Microsoft SQL Server 7.0 / Enterprise Manager, indicado com o seguinte ícone : . Antes de começar a criação de uma base de dados é importante lembrar que é preciso que os componentes do servidor de dados sejam inicializados com o Service Manager. O Service Manager é o que conecta o computador com a base de dados do SQL Server e geralmente é inicializado automaticamente durante o processo de boot. É possível identificar se o Service Manager está carregado observando seu ícone na barra de tarefas. Este ícone pode apresentar dois estados: => Service Manager Iniciado => Service Manager Não Iniciado Caso não exista esse ícone na barra de tarefas, é possível acessa-lo através do menu Iniciar / Programas / Microsoft SQL Server 7.0 / Service Manager. Caso ele não esteja ativado, é só clicar no botão Start/Continue. Veja a tela do Service Manager: Página 1 Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri Tendo a certeza de que o Service Manager está ativo, pode-ser retornar ao Enterprise Manager para iniciar a criação da base de dados. O Enterprise Manager apresenta a seguinte tela: A interface do Console (Microsoft Management Console), interno a tela do Enterprise Manager, é idêntica ao do Windows Explorer. Contém uma árvore mostrando uma série de itens e um painel de detalhes contendo informações sobre o item selecionado na árvore. Há várias pastas contendo componentes relativos as tarefas do servidor, mas a única que nos interessa no momento é a pasta que contém as bases de dados chamadas de Databases. É nesta pasta que estão as bases de dados já criadas e é nela também que criamos as novas. As bases de dados que já estão nesta pasta foram criadas automaticamente com a instalação do MS SQL Server e são utilizadas para o controle interno, conforme a descrição seguinte: master => esta base de dados contém os dados necessários para o SQL Server controlar suas operações como processos, configurações, contas de usuários, etc. Página 2 Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri model = > esta base de dados é um modelo que o SQL Server utiliza para criar novas bases de dados. Quando uma base é criada, é feita uma cópia desse modelo para essa base levando as tabelas e os outros objetos do sistema. msdb => armazena as informações necessárias para o gerenciamento das tarefas do componente Data Transformation Services (DTS) que é utilizado para a importação e exportação para diversas fontes de dados, cópias de segurança, etc. tempdb => é uma base destinada a armazenar temporariamente tabelas, procedimentos, etc. Northwind e pubs => são exemplos de bases de usuário, ou seja, contém dados que podem ser alterados e excluídos com fins de estudo. Como exemplo de criação de uma base de dados, será criada uma base chamada Cadastro contendo a tabela de Funcionários contendo a seguinte estrutura: Funcionários Nome do campo FuCodigo FuNome FuCargo Tipo de dados Texto Texto Texto Tamanho 3 50 25 Requerido Sim Sim Sim PROCEDIMENTOS PARA CRIAÇÃO DA BASE DE DADOS: Realize os seguintes procedimentos: 1. No Enterprise Manager selecione o item Databases. Clique com o botão direito do mouse sobre ele e selecione a opção New Database... , a seguinte tela será mostrada: Página 3 Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri 2. Digite o nome da base de dados (Cadastro) em Name e clique no botão Ok. A base de dados será criada e já poderá ser visualizada na árvore. Expandindo-o, pode-se notar uma série de subitens, o segundo deles é Tables e refere-se às tabelas de dados. PROCEDIMENTOS PARA CRIAÇÃO DA TABELA FUNCIONARIOS: Realize os seguintes procedimentos: 1. Observe que clicando sobre o subitem Tables da base de dados Cadastro pode-se notar uma série de tabelas já criadas, essas são as tabelas de sistema. Com o item Tables selecionado, clique com o botão direito do mouse sobre ela e escolha a opção New Table. 2. Uma caixa de diálogo será aberta para que se informe o nome da tabela a ser criada. Digite Funcionários e depois clique em Ok. A tabela será criada e uma nova janela será mostrada, a chamada Design Table. Construa a tabela da seguinte maneira, conforme mostra a figura seguinte: Para determinar que o campo seja uma chave primária, clique com o botão direito do mouse ao lado esquerdo da coluna Column Name referente ao campo que se deseja criar a chave primária e selecione Set Primary Key, ou clique no botão da barra de ferramentas. DESCRIÇAO DAS PROPRIEDADES DOS CAMPOS: Column Name => Nome do campo da tabela Datatype => Tipo de dado que o campo irá armazenar Length => Tamanho do campo Allow Nulls => se marcado permite valores nulos para o campo Default Value => determina um valor padrão que já é colocado ao campo cada vez que um registro novo é adicionado. Identity => se marcado, indica que o SQL Server deverá gerar um numero automaticamente implementando o valor da coluna. Identity Seed => permite estabelecer um valor inicial para o campo. O incremento iniciará a partir desse numero caso a propriedade Identity esteja marcada. Identity Increment => permite definir um valor de incremento para o campo caso a propriedade Identity esteja marcada. TIPOS DE DADOS UTILIZADOS PARA A PROPRIEDADE DATATYPE: tinyint => corresponde ao tipo byte do MS Access e suporta inteiros entre 0 e 255. smallint => valor inteiro compreendido entre -32,768 e 32,767. int => valor inteiro compreendido entre -2.147.483.648 e 2.147.483.647. Página 4 Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri smalldatetime => data compreendida entre 01/01/1900 e 06/06/2079 com precisão de horário de 1 minuto. datetime => data compreendida entre 01/01/1753 e 31/12/9999 com precisão de horário de 3,33 milissegundos. char => suporta até 8.000 caracteres nchar => suporta até 4.000 caracteres varchar => suporta até 4.000 caracteres nvarchar => suporta até 4.000 caracteres text => suporta até 2.147.483.647 caracteres DIGITANDO DADOS NA TABELA: Selecione a tabela Funcionarios, clique com o botão direito do mouse sobre ela e escolha a opção Open Table / Return all rows. A seguinte janela será mostrada: Realize o cadastramento de alguns registros para que você possa visualizá-los através do Visual Basic. CONSTRUINDO A APLICAÇÃO COM O VISUAL BASIC: Nos procedimentos a seguir será mostrado um exemplo bem simples de como acessar uma base de dados do SQL Server através do Visual Basic. Siga os procedimentos seguintes: 1. Inicie um novo projeto no VB. Para conectar a aplicação ao banco de dados será utilizado um componente chamado ADO Data Control que é bem parecido com o componente Data, inclusive suas propriedades são praticamente as mesmas, entretanto, possui um modo de conexão com a base de dados do SQL Server. No lugar de um DBGrid será utilizado um DataGrid, compatível com o ADO. Para que esses dois componentes estejam disponíveis acesse o menu Project / Components e marque os itens: Microsoft ADO Data Control 6.0 (OLEDB) e Microsoft DataGrid Control 6.0 (OLEDB) conforme a figura seguinte. Depois clique em Ok. Os novos componentes se tornarão disponíveis na barra de ferramentas. Página 5 Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri 2. Adicione um ADO Data Control e um DataGrid no formulário. Construa o formulário de acordo com a seguinte figura. DataControl (Adodc) DataGrid 3. Para conectar o DataControl a base de dados do MS SQL Server faça o seguinte: a)Clique na propriedade ConnectionString do DataControl e a seguinte tela será mostrada: Página 6 Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri b) Selecione a opção Use Connection String e clique no botão Build. Uma nova tela será mostrada para que se escolha o tipo de conexão. Na guia Provider selecione Microsoft OLE DB Provider for SQL Server e depois passe para a guia Connection. Uma outra tela surgirá para que selecione a base de dados: c) Digite o nome do servidor onde está à base de dados do SQL Server ou simplesmente o selecione. Se você não souber o nome do servidor poderá digitar (local), nome default para o servidor Local. Caso a base de dados possua uma determinada senha de acesso, digite o login e a senha para o acesso a essa base de dados. Para facilitar será utilizada a opção Use Windows NT Integrated security onde não é necessário especificar senha alguma. d) Selecione a opção Select the database on the Server e no combo abaixo escolha a base de dados a ser conectada, no caso Cadastro. Clique no botão Test Connection para testar a conexão. Se tudo estiver certo aparecerá uma mensagem de sucesso na conexão. Clique em Ok e a string de conexão será criada. 4. Agora que o DataControl já está conectado a base de dados Cadastro, basta determinar a tabela com qual ele irá trabalhar. Selecione a propriedade RecordSource do DataControl. Na tela que surgir, em Command Type escolha a opção adCmdTable e logo abaixo selecione a tabela desejada que no caso é a tabela de Funcionarios. Clique no botão Ok e a conexão com a tabela já estará pronta. 5. Aponte a propriedade DataSource do DataGrid e dos Texts para o DataControl (Adodc1). Aponte cada propriedade DataField de cada Text para seu campo correspondente na tabela Funcionarios. 6. insira os códigos do programa conforme as descrições seguintes. a) No evento Load do Form1 coloque os seguintes comandos: Command1.Enabled = True Command2.Enabled = False Página 7 Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri Command3.Enabled = True b) No evento Click do botão Adicionar coloque os seguintes comandos: Adodc1.Recordset.AddNew Text1.SetFocus Command1.Enabled = False Command2.Enabled = True Command3.Enabled = False c) No evento Click do botão Excluir coloque os seguintes comandos: If Adodc1.Recordset.RecordCount > 0 Then If MsgBox("Deseja realmente excluir este funcionário?", 4) = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MovePrevious End If End If End If d) No evento Click do botão Gravar coloque os seguintes comandos: On Error GoTo Trata If (Text1.Text = "") Or (Text2.Text = "") Or (Text3.Text = "") Then MsgBox ("Preencha corretamente os campos!") Exit Sub End If Adodc1.Recordset.Update Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True Exit Sub Trata: Select Case Err.Number Case -2147217873 'erro ao gravar na base de dados MsgBox "Funcionário já cadastrado!" Adodc1.Recordset.CancelBatch 'cancela o processo de gravação Adodc1.Recordset.MoveFirst Command1.Enabled = True Command2.Enabled = False Command3.Enabled = True End Select Com os códigos apresentados você terá um pequeno cadastro em Visual Basic com acesso ao SQL Server. RESUMO DA AULA: Pudemos nesta aula conhecer o funcionamento básico do sistema MS SQL Server, focalizando a sua utilização para a criação de bases de dados. Vimos o exemplo de uma aplicação simples desenvolvida em Visual Basic para acessar a base de dados criada pelo MS SQL Server. Para acessar a base de dados conhecemos dois Página 8 Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri componentes do Visual Basic que foram inseridos na aplicação chamados: ADO Data Control (usado para a conexão com a base de dados) e DataGrid Control (um grid usado para apresentar os dados na aplicação). EXERCÍCIO: Para você melhor fixar os conceitos apresentados na aula, elabore uma outra tabela qualquer, de produtos, por exemplo, e realize os mesmos procedimentos mostrados no exemplo. A seguir modifique a aplicação em VB para que ela manipule a nova tabela criada. PARA PENSAR E DISCUTIR: • • Você acha que o usuário percebe alguma diferença na execução de uma aplicação, caso ela esteja acessando uma base MS ACCESS em relação a uma base MS SQL Server? Justifique sua resposta. Você é capaz de citar algumas vantagens e desvantagens de se utilizar uma base de dados com o SQL Server? Página 9