LDP mod 14 - Acesso a bases de dados

698 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
698
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
15
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

LDP mod 14 - Acesso a bases de dados

  1. 1. Módulo 14- Acesso a Bases de Dados no VB 6.0 Conceição Maroco / Rui Inácio 1
  2. 2.  Front-end – Aplicação que operamos e que interage com o back-end (user-friendly).  Back-end – Base de dados, local onde a informação fica armazenada. Gestão Base de dadosBack-endFront-end Aplicação Aplicação Aplicação Cliente Cliente Cliente Utilizador A Utilizador B Utilizador C Conceição Maroco / Rui Inácio 2
  3. 3.  2 aproximações com Objectos de Dados. ◦ DAO (Data Access Objects)  Estratégia de acesso original (até ao VB 6.0)  Extremamente ligado ao MS Access ◦ ADO (ActiveX Data Objects)  Uma nova aproximação (a partir do VB 6.0)  Mais genérica  Também utilizada com ASP (VB Script active server pages) Conceição Maroco / Rui Inácio 3
  4. 4.  Jet Database Engine: Motor de base de dados do VB para MS Access e bases de dados ISAM (Indexed Sequential Access Method) ODBC (Open Database Connectivity): Interface para bases de dados relacionais SQL. RDO (Remote Data Objects): Componente original para aceder a bases de dados numa rede OLE DB (Object Linking & Embedding Databases): nova interface de acesso a bases de dados SQL e não-SQL. Conceição Maroco / Rui Inácio 4
  5. 5.  Motores de bases de dados: Executam as operações de criação, inserção, alteração, eliminação, … nas bases de dados. Conceição Maroco / Rui Inácio 5
  6. 6. Aplicação VB ADO OLE DB ODBC Dados SQL Dados não-SQLex: MS Access ex: ficheiros de (JET) , SQL texto, folhas de Server,.. cálculo,.. Conceição Maroco / Rui Inácio 6
  7. 7.  Baseados em Controlos de dados ◦ Nenhuma programação (ou pouca) ◦ Associada a algumas formas de controlos (como DataGrid, DataList, etc) ◦ Visão dos dados é limitada Baseada na programação ◦ Utiliza o objecto Connection (ADO) ◦ Permite um melhor controlo dos dados Conceição Maroco / Rui Inácio 7
  8. 8.  Componentes (Project/Components) ◦ Microsoft ADO Data Control 6.0 (OLEDB) ◦ Microsoft Data Grid Control 6.0 (OLEDB) ◦ Microsoft Data List Controls 6.0 (OLEDB)  DataList  DataCombo Bibliotecas (Project/References) ◦ Microsoft ActiveX Data Objects 2.0 Library (ou mais recente possível) Conceição Maroco / Rui Inácio 8
  9. 9. Conceição Maroco / Rui Inácio 9
  10. 10. Conceição Maroco / Rui Inácio 10
  11. 11.  Data Control Object (Adodc1) ◦ Connection String: Carregar botão Build, indicar o motor da base de dados (JET) e escolher a localização da base de dados. Testar a ligação. ◦ Record Source: escrever um expressão SQL (SELECT * FROM Fornecedores;) ou escolher a tabela Fornecedores ◦ Command Type: 1-adCmdText para expressão SQL query ou 2-adCmdTable para tabela/consulta Textbox (Text1) ◦ Data Source - Adodc1 ◦ Data Field - NomeForn Conceição Maroco / Rui Inácio 11
  12. 12.  Requer o objecto ADO library (Project|References) Requer a criação, configuração e iniciação das variáveis: ◦ Objecto Connection (Connection String) ◦ Objecto Recordset (Expressão/Tabela SQL) Processamento do objecto Recordset Término de Recordset e Connection Conceição Maroco / Rui Inácio 12
  13. 13. Conceição Maroco / Rui Inácio 13
  14. 14.  Connection Object Recordset Object Field Object Command Object Parameter Object Error Object Conceição Maroco / Rui Inácio 14
  15. 15. CommandConnection Ligação FieldConexão activa Fields Collection RecordSet Conceição Maroco / Rui Inácio 15
  16. 16.  Connection String ◦ Provider (exemplo de Provider = Microsoft.Jet.OLEDB.4.0;) ◦ Data Source (ex. de Data Source = C:dbprojemp.mdb;) ◦ Username & Password (ex. de User ID = Admin; Password = ;) Dim <connection variable> As ADODB.Connection Set <connection variable> = New ADODB.Connection <connection variable>.Open ConnectionString Conceição Maroco / Rui Inácio 16
  17. 17. Connection Object Methods DescriçãoOpen Abre uma ligação à base de dadosClose Fecha a ligação à base de dadosExecute Executa uma instrução SQLBeginTrans Começa uma transacção de dadosCommitTrans Faz o commit da transacçãoRollBackTrans Cancela todas as operações durante uma transacção Conceição Maroco / Rui Inácio 17
  18. 18. Connection Object DescriçãoPropertiesConnectionString Contêm a informação necessária à ligaçãoConnectionTimeOut Tempo máximo da ligaçãoCommandTimeOut Tempo máximo para execução de uma instrução.State Indica o estado da ligação: ligado ou desligadoProvider Indica o fornecedor do serviço.Version VersãoCursorLocation Localização do cursor Conceição Maroco / Rui Inácio 18
  19. 19.  Array bidimensional que contêm uma tabela/resultado de SQL ADO permite a utilização de 4 tipos diferentes de cursores: ◦ Dynamic Cursor (CursorType = adOpenDynamic)  Percorre livremente um RecordSet (avanços, recúos, BOF, EOF) ◦ Keyset Cursor (CursorType = adOpenKeyset)  Semelhante ao Dynamic Cursor, mas não permite alterações em registos utilizados por outros utilizadores (lento) ◦ Static Cursor (CursorType = adOpenStatic)  Não permite visualizar as alterações introduzidas por outros utilizadores (mais rápido) ◦ Forward Only Cursor (CursorType = adOpenForwardOnly)  Como o static cursor mas não autoriza recúos no recordset (o mais rápido) Conceição Maroco / Rui Inácio 19
  20. 20. Dim rst As ADODB.Recordset Set rst = New ADODB.Recordset Os métodos principais do RecordSet: ◦ AddNew, Delete, Update ◦ Open, Close, Cancel rst.Open <SQL query/Table>, <connection variable>, <LockType>  Exemplo: rst.Open “Fornecedores”, adoconn ◦ Move, MoveFirst, MoveNext, MovePrevious, MoveLast ◦ Seek – procura o índice introduzido e desloca-se para a linha pretendida ◦ Find – procura a linha com o valor pedido (o seek é mais rápido mas implica a utilização de um índice) Conceição Maroco / Rui Inácio 20
  21. 21.  O objecto Fields é um Collection – significa que possui um conjunto de valores (neste caso, Field) Exemplos:Dim fld As Fieldrst.Open “Forncedores”  devolve todos os registos da tabela Fornecedores para o rstSet fld = rst.Fields(1)  atribui o 2º recordset field (NomeForn) para fldDebug.Print fld.Name  faz print do nome do Campo na janela ImmediateDebug.Print rst.Fields.(“CodForn”)  faz print do registo actual do recordSet para o campo CodFornDebug.Print rst.Fields.Count  Faz print do número de campos presentes no RecordSet rst Conceição Maroco / Rui Inácio 21
  22. 22. rst.Open “SELECT * FROM Fornecedores;”, connPrint “CodForn”, “NomeForn”, “Endereço”, “Telefone”Do Until rst.EOF Print rst(0), rst(1), rst(2), rst(3) rst.MoveNextLooprst.Closeconn.Close Conceição Maroco / Rui Inácio 22
  23. 23. rst.Open “SELECT * FROM Fornecedores;”, connrst.Find = “CodForn = 1 ”Print rst.Fields(2), rst.Fields(3) Conceição Maroco / Rui Inácio 23

×