SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Módulo 14- Acesso a Bases de Dados no VB 6.0




                      Conceição Maroco / Rui Inácio   1
   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 dados
Back-end

Front-end
              Aplicação        Aplicação                        Aplicação
               Cliente          Cliente                          Cliente
             Utilizador A     Utilizador B                     Utilizador C


                               Conceição Maroco / Rui Inácio                  2
   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
   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
   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
Aplicação VB

                      ADO

                 OLE DB

 ODBC

 Dados SQL                    Dados não-SQL
ex: MS Access                 ex: ficheiros de
  (JET) , SQL                 texto, folhas de
    Server,..                    cálculo,..



                      Conceição Maroco / Rui Inácio   6
   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
   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
Conceição Maroco / Rui Inácio   9
Conceição Maroco / Rui Inácio   10
   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
   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
Conceição Maroco / Rui Inácio   13
   Connection Object
   Recordset Object
   Field Object
   Command Object
   Parameter Object
   Error Object




                        Conceição Maroco / Rui Inácio   14
Command



Connection       Ligação                                            Field



Conexão activa
                                                              Fields Collection
                           RecordSet



                              Conceição Maroco / Rui Inácio                       15
   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
Connection Object Methods   Descrição
Open                        Abre uma ligação à base de dados
Close                       Fecha a ligação à base de dados
Execute                     Executa uma instrução SQL
BeginTrans                  Começa uma transacção de dados
CommitTrans                 Faz o commit da transacção
RollBackTrans               Cancela todas as operações durante
                            uma transacção




                                Conceição Maroco / Rui Inácio    17
Connection Object   Descrição
Properties
ConnectionString    Contêm a informação necessária à ligação

ConnectionTimeOut   Tempo máximo da ligação

CommandTimeOut      Tempo máximo para execução de uma
                    instrução.
State               Indica o estado da ligação: ligado ou desligado
Provider            Indica o fornecedor do serviço.
Version             Versão
CursorLocation      Localização do cursor




                                 Conceição Maroco / Rui Inácio        18
   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
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
   O objecto Fields é um Collection – significa que
    possui um conjunto de valores (neste caso,
    Field)
   Exemplos:
Dim fld As Field
rst.Open “Forncedores”  devolve todos os registos da tabela
   Fornecedores para o rst
Set fld = rst.Fields(1)  atribui o 2º recordset field (NomeForn) para fld

Debug.Print fld.Name  faz print do nome do Campo na janela Immediate
Debug.Print rst.Fields.(“CodForn”)  faz print do registo actual do
  recordSet para o campo CodForn
Debug.Print rst.Fields.Count  Faz print do número de campos presentes
  no RecordSet rst


                                         Conceição Maroco / Rui Inácio       21
rst.Open “SELECT * FROM Fornecedores;”, conn
Print “CodForn”, “NomeForn”, “Endereço”,
  “Telefone”
Do Until rst.EOF
 Print rst(0), rst(1), rst(2), rst(3)
 rst.MoveNext
Loop
rst.Close
conn.Close


                        Conceição Maroco / Rui Inácio   22
rst.Open “SELECT * FROM Fornecedores;”, conn
rst.Find = “CodForn = 1 ”
Print rst.Fields(2), rst.Fields(3)




                        Conceição Maroco / Rui Inácio   23

Weitere ähnliche Inhalte

Was ist angesagt?

Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sqlrobinhoct
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Document store e Mongodb
Document store e MongodbDocument store e Mongodb
Document store e MongodbAline Ferreira
 
Quest banco dados
Quest banco dadosQuest banco dados
Quest banco dadosCarol Luz
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Marco Pinheiro
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Leinylson Fontinele
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
Bancos de Dados Orientados a Objeto
Bancos de Dados Orientados a ObjetoBancos de Dados Orientados a Objeto
Bancos de Dados Orientados a Objetoelliando dias
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoHelder Lopes
 

Was ist angesagt? (10)

Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sql
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Document store e Mongodb
Document store e MongodbDocument store e Mongodb
Document store e Mongodb
 
Quest banco dados
Quest banco dadosQuest banco dados
Quest banco dados
 
Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)Linguagem SQL (com MySQL)
Linguagem SQL (com MySQL)
 
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
Banco de Dados I - Aula 10 - Banco de Dados Relacional (Modelo Físico)
 
Aula 05 acessando o mysql
Aula 05   acessando o mysqlAula 05   acessando o mysql
Aula 05 acessando o mysql
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Bancos de Dados Orientados a Objeto
Bancos de Dados Orientados a ObjetoBancos de Dados Orientados a Objeto
Bancos de Dados Orientados a Objeto
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 

Ähnlich wie VB 6 Acesso Bases Dados

Ähnlich wie VB 6 Acesso Bases Dados (20)

Aula1
Aula1Aula1
Aula1
 
CURSO JAVA 01
CURSO JAVA 01CURSO JAVA 01
CURSO JAVA 01
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java III
 
Desenvolvimento Delphi
Desenvolvimento DelphiDesenvolvimento Delphi
Desenvolvimento Delphi
 
Jdbc
JdbcJdbc
Jdbc
 
Java13
Java13Java13
Java13
 
Spring Data Neo4j
Spring Data Neo4jSpring Data Neo4j
Spring Data Neo4j
 
Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7Persistência com JPA usando o NetBeans 7
Persistência com JPA usando o NetBeans 7
 
2006 - ADONET.ppt
2006 - ADONET.ppt2006 - ADONET.ppt
2006 - ADONET.ppt
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Funcionalidades de Acesso a Dados no 'Mango'
Funcionalidades de Acesso a Dados no 'Mango'Funcionalidades de Acesso a Dados no 'Mango'
Funcionalidades de Acesso a Dados no 'Mango'
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
Java database connectivity jdbc
Java database connectivity   jdbcJava database connectivity   jdbc
Java database connectivity jdbc
 

VB 6 Acesso Bases Dados

  • 1. Módulo 14- Acesso a Bases de Dados no VB 6.0 Conceição Maroco / Rui Inácio 1
  • 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 dados Back-end Front-end Aplicação Aplicação Aplicação Cliente Cliente Cliente Utilizador A Utilizador B Utilizador C Conceição Maroco / Rui Inácio 2
  • 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. 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. 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. Aplicação VB ADO OLE DB ODBC Dados SQL Dados não-SQL ex: MS Access ex: ficheiros de (JET) , SQL texto, folhas de Server,.. cálculo,.. Conceição Maroco / Rui Inácio 6
  • 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. 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. Conceição Maroco / Rui Inácio 9
  • 10. Conceição Maroco / Rui Inácio 10
  • 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. 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. Conceição Maroco / Rui Inácio 13
  • 14. Connection Object  Recordset Object  Field Object  Command Object  Parameter Object  Error Object Conceição Maroco / Rui Inácio 14
  • 15. Command Connection Ligação Field Conexão activa Fields Collection RecordSet Conceição Maroco / Rui Inácio 15
  • 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. Connection Object Methods Descrição Open Abre uma ligação à base de dados Close Fecha a ligação à base de dados Execute Executa uma instrução SQL BeginTrans Começa uma transacção de dados CommitTrans Faz o commit da transacção RollBackTrans Cancela todas as operações durante uma transacção Conceição Maroco / Rui Inácio 17
  • 18. Connection Object Descrição Properties ConnectionString Contêm a informação necessária à ligação ConnectionTimeOut Tempo máximo da ligação CommandTimeOut Tempo máximo para execução de uma instrução. State Indica o estado da ligação: ligado ou desligado Provider Indica o fornecedor do serviço. Version Versão CursorLocation Localização do cursor Conceição Maroco / Rui Inácio 18
  • 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. 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. O objecto Fields é um Collection – significa que possui um conjunto de valores (neste caso, Field)  Exemplos: Dim fld As Field rst.Open “Forncedores”  devolve todos os registos da tabela Fornecedores para o rst Set fld = rst.Fields(1)  atribui o 2º recordset field (NomeForn) para fld Debug.Print fld.Name  faz print do nome do Campo na janela Immediate Debug.Print rst.Fields.(“CodForn”)  faz print do registo actual do recordSet para o campo CodForn Debug.Print rst.Fields.Count  Faz print do número de campos presentes no RecordSet rst Conceição Maroco / Rui Inácio 21
  • 22. rst.Open “SELECT * FROM Fornecedores;”, conn Print “CodForn”, “NomeForn”, “Endereço”, “Telefone” Do Until rst.EOF Print rst(0), rst(1), rst(2), rst(3) rst.MoveNext Loop rst.Close conn.Close Conceição Maroco / Rui Inácio 22
  • 23. rst.Open “SELECT * FROM Fornecedores;”, conn rst.Find = “CodForn = 1 ” Print rst.Fields(2), rst.Fields(3) Conceição Maroco / Rui Inácio 23