10ª AULA VISUAL BASIC – PROF. GALE Banco de Dados O Visual Basic disponibiliza meios de se construir aplicativos de bancos de dados de maneira rápida. De modo geral, bancos de dados são conjuntos de tabelas, índices e relações potencializados por algum driver de banco de dados. O VB possibilita a conexão com os seguintes drivers: • • • • • Microsoft Access; dBase III, IV e 5.0; FoxPro 2.0, 2.5 e 3.0; Paradox 3.x, 4.x e 5.x; ODBC, entre outros. Os bancos de dados do VB são potencializados pelo Jet Engine, que é o mesmo driver do Access. Alguns termos merecem definição: • DBEngine: é um objeto que representa o Jet Engine da MicroSoft e contém todos os outros objetos de bancos de dados. • Worspace: é um objeto que define uma seção de trabalho do usuário. Quando um banco de dados é iniciado, um Workspace default é criado, com senha “” e nome “ Admin”. • DataBase: é o objeto banco de dados por excelência; • TableDef: representa a estrutura de uma tabela, que pode conter vários campos (Fields) e vários índices (Indexes); • Field: representa um campo dentro de uma tabela. • Index: representa um índice dentro de uma tabela. • QueryDef: representa a estrutura de uma consulta (query) em uma tabela. • RecordSet: representa uma tabela ou parte dela. O Recorset pode ser do tipo Table (Tabela), Dynaset ou SnapShot (Instantâneo). Dynaset é uma estrutura mais versátil do que uma tabela, podendo ser gerado por uma consulta ou uma declaração SQL. Snapshot é o tipo mais restritivo de tabelas e seus dados não pode ser alterados pelo usuário. O CONTROLE DE DADOS A maneira mais fácil de manipular bancos de dados é por meio do Data Control, ou Controle de Dados. Este controle, disponível desde a versão 2.0, abre um banco de dados, conecta-se a uma tabela especificada e mostra o conteúdo dos campos em “controles ligados”. Para usar o Controle de Dados, proceda da seguinte maneira: a) Desenhe o Controle de Dados no formulário; b) Na janela de propriedades, especifique a propriedade DataBaseName. Esta propriedade deve conter um banco de dados já existente, com todo o caminho; c) Especifique a propriedade RecordSource, que deve corresponder a uma tabela válida do banco de dados; d) Desenhe uma caixa de texto para cada campo da tabela; e) Defina a propriedade DataSource de cada caixa de texto como sendo Data1 (ou o nome do Controle de Dados).Da mesma forma, especifique a propriedade DataField de cada caixa de texto como uma campo distinto da tabela. Resumindo: Banco de Dados Tabelas Linhas (registros) Colunas (campos) O Controle DATA Databasename: (Banco de Dados) Recordsource: (tabela) Recordsets (conjunto de registros): são objetos que representam coleções de registros de uma ou mais tabelas. Recordsets são equivalentes as variáveis da programação tradicional. Nas textbox devemos observar as seguintes propriedades: • • Datasource (enxerga o Banco) Datafield (nome do campo) O Controle Data: MoveFirst MoveLast MovePrevious MoveNext Ex: Data1.Recordset.movefirst If Data1.Recordset.EOF then Data1.Recordset.moveLast Endif Método Find: FindFirst FindLast FindNext FindPrevious Ex: Data1.Recorset.FindFirst “ “ Crie uma tabela através do Add-Ins / Visual Data Manager, contendo: Número / Nome / Apelido / Cidade / Estado / Data_Nasc / Profissão / Estado Civil UMA AGENDA DE ENDEREÇOS O VB pode ser usado para criar um formulário simples do tipo agenda. Você precisará de um banco de dados com os seguintes campos: • • • • • • • • Nome; Endereço; Telefone; FAX; E-mail; Cidade; Estado; CEP. Este banco de dados pode ser criado em Access ou por meio do Data Manager. Denomine este banco de dados de AGENDA.MDB. Será necessário criar apenas uma tabela dentro deste banco de dados, a qual chamaremos de NOMES. Formulário frmAgenda conectar o Controle de Dados ao banco de dados e as caixas de texto ao Controle de Dados: a) Na janela de propriedades de Data1, especifique a propriedade DataBaseName para AGENDA.MDB, incluindo todo o caminho; b) Especifique a propriedade RecordSource de Data1, que deve corresponder à tabela Nomes; c) Defina a propriedade DataSource de cada caixa de texto como sendo Data1. Da mesma forma, especifique a propriedade DataField de cada caixa de texto como o campo correspondente Código 3 5 6 7 9 10 11 13 14 16 17 18 20 Descrição Return without GoSub Invalid procedure call Overflow Out of memory Subscript out of range This array is fixed or temporarily locked Division by zero Type mismatch Out of string space Expression Too Complex Can't perform requested operation User interrupt occurred Resume without error Descrição em português Return sem GoSub Chamada inválida de procedimento Sobrecarga Falta de memória Subescrito fora do intervalo Este array é fixo ou temporariamente travado Divisão por zero Tipo incorreto Falta de espaço no string Expressão muito complexa Impossível realizar a operação requisitada Interrupção do usuário Continuar sem erro Código 28 35 47 48 49 51 52 53 54 55 57 58 59 61 62 63 67 68 70 71 74 75 76 91 92 93 94 444 452 453 457 460 461 480 481 482 483 484 485 520 521 Descrição Out of stack space Sub, Function, or Property not defined Too many DLL application clients Error in loading DLL Bad DLL calling convention Internal error Bad file name or number File not found Bad file mode File already open Device I/O error File already exists Bad record length Disk full Input past end of file Bad record number Too many files Device unavailable Permission denied Disk not ready Can't rename with different drive Path/File access error Path not found Object variable or With block variable not set For loop not initialized Invalid pattern string Invalid use of Null Method not applicable in this context Invalid ordinal Specified DLL function not found Duplicate Key Invalid Clipboard format Specified format doesn't match format of data Can't create AutoRedraw image Invalid picture Printer error Printer driver does not support specified property Problem getting printer information from the system. Make sure the printer is set up correctly Invalid picture type Can't empty Clipboard Can't open Clipboard Descrição em português Falta de espaço na pilha Sub, Função ou propriedade não definida Demasiados aplicativos DLL clientes Erro no carregamento de DLL Má convenção de chamada de DLL Erro interno Número ou nome de arquivo incorreto Arquivo não encontrado Modo de arquivo incorreto Arquivo jã aberto Erro de dispositivo de entrada/saída Arquivo já existe Tamanho de registro incorreto Disco cheio Entrada depois do fim do arquivo Número de registro incorreto Arquivos em damasia Dispositivo inacessível Permissão nagada Disco não pronto Impossível renomear com drive diferente Erro de acesso a caminho ou arquivo Caminho não encontrado Variável objeto ou bloco With não definida Laço For não inicializado Padrão de string inválido Uso inválido de Null Métod não aplicável neste contexto Ordinal inválido Função DLL especificada não encontrada Chave duplicada Formato do Clipboard inválido Formato especificado não casa com formato do dado Impossível criar imagem AutoRedraw Figura inválida Erro de impressão Driver de impressão não suporta a proprieadade especificada Problemas em conseguir informação da impressora do sistema. Certifique-se de que a impressora está configurada corretamente. Tipo de figura inválida Impossível esvaziar o Clipboard Impossível abrir o Clipboard