USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Compactar DB usando ADO
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 14/07/2006 09:33 hs            
Galera,
Sei que isso deve ser simples, mas nunca fiz...
pra falar a verdade nem gosto de trabalhar com Access...
 
Mas um amigo de serviço me pergunto como fazer, e eu nem soube falar pra ele...
 
Se alguem souber como faço, agradeço a ajuda...


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 14/07/2006 10:08 hs            
Ae Topassi aki tem um link veja só se serve
 

Jesus Cristo é O Senhor!!!
     
Ivo
BARRETOS
SP - BRASIL
Postada em 14/07/2006 10:30 hs            
Esse é o melhor codigo que ja experimentei
 
Primeiro vc deve fazer referencia em microsoft jet and replications objets 2x library
 
Private Sub ADO_CompactarDB()
  'Iniciamos o tratamento de erros.
  'Se algo der errado, vamos para a linha indicada.
  On Error Goto ErroCompactar
  'Declaramos as variáveis
  Dim JR As New JRO.JetEngine
  Dim S_DbNome As String, S_DbTemp As String
  'Descobrimos o caminho do Arquivo Original
  'e do Arquivo Temp
  S_DbNome = App.Path & "BD.mdb"
  S_DbTemp = App.Path & "BDTmp.mdb"
  If Right$(App.Path, 1) = "" Then
    S_DbNome = App.Path & "BD.mdb"
    S_DbTemp = App.Path & "BDTmp.mdb"
  End If
  'Descobrimos se o Arquivo Temp existe...
  If Dir$(S_DbTemp) <> "" Then
    'Se existe, deletamos (vide *Kill lá em baixo)
    Call Kill(S_DbTemp)
  End If
  'Compactamos o banco de dados com o
  'nome de Arquivo Temp
  JR.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                     "Data Source=" & S_DbNome & ";", _
                     "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                     "Data Source=" & S_DbTemp & ";Jet." & _
                     "OLEDB:Engine Type = 4;"
  'Este "Engine Type" no final indica a versão do Access que está
  'sendo usada. Veja os valores e as versões correspondentes:
  '5 (Defaut) para Access 2000
  '4 para Access 97
  '3 para Access 95/6
  '2 para Access 2
  '1 para Access 1
  'Se Arquivo Original existir...
  If Dir$(S_DbNome) <> "" Then
    'deleta
    Call Kill(S_DbNome)
  End If
  'Aqui, vc poderia usar a instrução
  'Name (vide *Name lá em baixo)
  JR.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                     "Data Source=" & S_DbTemp & ";", _
                     "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                     "Data Source=" & S_DbNome & ";Jet." & _
                     "OLEDB:Engine Type = 4;"
  'Se chegamos até aqui, avisa ao usuário que
  'tudo correu bem...
  MsgBox "Compactação do Banco de Dados " & _
         S_DbNome & " executada com sucesso.", _
         vbOKOnly + vbInformation, "Compactação"
  Set JR = Nothing
Exit Sub
ErroCompactar:
  'Se caiu aqui, é porque houve erro. Avise ao usuário.
  MsgBox "Houve um erro inesperado ao compactar o " & _
         S_DbNome & " ." , vbOKOnly + vbInformation, _
         "Compactação"
  'Limpa o erro. Não é obrigatório mais é de bom
  'costume fazer.
  Err.Clear
End Sub
 
     
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 14/07/2006 11:22 hs            
Ivo:
 
esse codigo parece ser muito bom mesmo , mas ae cara ele nao acha o caminho do banco nunca irmao, da sempre erro de Could not find file
 
 JR.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                     "Data Source=" & S_DbNome & ";", _
                     "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                     "Data Source=" & S_DbTemp & ";Jet." & _
                     "OLEDB:Engine Type = 5;"

Jesus Cristo é O Senhor!!!
     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 14/07/2006 11:42 hs            
Ivo, nao testei seu codigo ainda, mas pelo que vi vc usa um outro activeX, esse tal de JRO.JetEngine...
O que eu quero é justamente fazer isso sem ter q distribuir mais nada alem do MDAC na instalação do sistema...
Atualmente, essa pessoa q me pediu o codigo esta usando o JET pra compatcar... ele faz todas as operações no banco com ADO, mas na hora de compactar ele usa DAO... é justamente isso que eu não quero...
Minha duvida é saber se tem como fazer isso com ADO ou com algum outro activeX pertencente ao MDAC...


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

   
Ivo
BARRETOS
SP - BRASIL
Postada em 14/07/2006 13:35 hs            
Pelo que sei o JRo é uma extensão do Ado. Não precisa distribuir , apenas referenciar.
     
Página(s): 1/3      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página