Newsgroup: it.comp.lang.visual-basic
Titolo: Jet

Riposto questo messaggio perche non compare su tutti i server ;...(
Per la prima volta sono costretto ad utilizzare un DB locale (mdb), perche
devo avere dei valori del db remoto sempre sync anche quando la conetività è
assente.
Allora volevo compattare sto maledetto DB perche cresce a vista d'occhio
(anche sè non è esagerato dai 1,5 ai 2 mb).
Ho trovato tutto il codice necessario (jet e robbe varie), però non riesco a
creare un riferimento a ms jet and rep obj (non lo trovo).
Ho VB6 e SP6, qualcuno può darmi una dritta?
Grazie 

 ha scritto

non sono sicuro di avere capito. jro pensavo l'avesse messo una delle ultime
versioni mdac (attualmente su ho la 2.8), mi fai sorgere il sospetto che sia
in qualche sp di jet.
queste sono le versioni che mi ritrovo in \sys:
09/05/2000 01.55 1.357.360 jet35sp3.exe
22/03/1999 17.40 985.824 jet35upd.exe
22/03/1999 17.10 14.861 jet35upd.htm
15/09/2000 15.40 2.891.424 jet40sp4.exe
15/02/2003 20.53 149.608 jet40sp6.mht
27/03/2002 00.31 4.057.520 jet40sp6_q320176_w2k-sp2_ita.exe
25/03/2002 22.36 4.210.944 jet40sp6_w2k_usa.exe
17/04/2004 05.11 3.872.168 jet40sp8_9xnt.exe
17/04/2004 05.10 2.963.304 jet40sp8_windows2000-kb829558-x86-enu.exe
17/04/2004 05.11 2.961.504 jet40sp8_windowsxp-kb829558-x86-enu.exe
11/04/2003 18.24 113.328 jetcu40.mdb-repair_exe.exe
in vb il riferimento mi appare come:
    ms jet and replication objects 2.6 library
    c:\programmi\file comuni\system\ado\msjro.dll
questo e' il codice che uso in dao e in ado. il secondo devo averlo trovato,
forse sul sito comune, e adattato.
occhio alle cose solite, gestione errori, scaricare eventuali form con
datacontrol aperti, ecc.
hth, ciao, j.
dao:
Public Sub DbPack()
    On Error Resume Next 'pericolosisssssimo in questi casi :)
    Dim time1: time1 = Timer
    If MsgBox("COMPATTARE IL DATABASE?", vbYesNoCancel) <> vbYes Then Exit
Sub
    mainDb.Close
    Screen.MousePointer = 11
    DBEngine.CompactDatabase mainPath & "test.mdb", mainPath & "testnew.mdb"
    Beep
    Kill mainPath & "testold.mdb"
    Name mainPath & "test.mdb" As mainPath & "testold.mdb"
    Name mainPath & "testnew.mdb" As mainPath & "test.mdb"
    MsgBox ("Backup OK: " & vbCrLf & _
        mainPath & "test.mdb" & " -- " & _
            Format(FileLen(mainPath & "test.mdb"), "###,###,###,###") &
vbCrLf & _
        mainPath & "testold.mdb" & " -- " & _
            Format(FileLen(mainPath & "testold.mdb"), "###,###,###,###") &
vbCrLf & _
        Format(Timer - time1, "###,##0.##"))
    Screen.MousePointer = 0
    Set mainDb = OpenDatabase("test.mdb")
'ErrMan:
'     MsgBox Error & Error & " (" & Err & ")"
End Sub
ado:
Public Sub dbPack()
    If MsgBox("Pack / backup the database and exit the program ?", _
     vbYesNoCancel) <> vbYes Then Exit Sub
    mainDB.Close
    Set mainDB = Nothing
    FileCopy App.Path & "\test.mdb", App.Path & "\testold.mdb"
    If Dir(App.Path & "\testnew.mdb") <> "" Then Kill App.Path &
"\testnew.mdb"
    Dim CNN As JRO.JetEngine
    Dim CnnSource As String
    Dim CnnTarget As String
    ' Attenzione : Il programma compatta i database di access 97.
    ' Per compattare database diversi da access 97
    ' cambiare il "Engine Type=4"
    ' es. access 2000 cambiare il "Engine Type=5"
    Screen.MousePointer = vbHourglass
    Set CNN = New JRO.JetEngine
    CnnSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;User
ID=Admin;Password=;"
    CnnTarget = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=testnew.mdb;Jet OLEDB:Engine Type=5;"
    CNN.CompactDatabase CnnSource, CnnTarget
    Set CNN = Nothing
    Name App.Path & "\test.mdb" As App.Path & "\testtmp.mdb"
    FileCopy App.Path & "\testnew.mdb", App.Path & "\test.mdb"
    Kill App.Path & "\testtmp.mdb"
    On Error GoTo 0
    MsgBox "OK -- Ending Program"
   Exit Sub
End Sub

 ha scritto nel messaggio 
news:366oo0F...@individual.net...


 soluzione.
Il file corrispondente e' <file comuni>\system\ado\msjro.dll
Controlla se esiste ed eventualmente prova a registrarlo a mano (REGSVR32)
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown 

 ha scritto nel messaggio 
news:366q5cF...@individual.net...


 Si può reinstallare in qualche modo????
Prova a guardare qui:
http://www.randem.com/support.html
Trovi una lista di tutte le installazioni di MDAC + un pacchettone che installa "Il 
TUTTO", magari scaricati il Component Checker dal sito microsoft.
JRO lo trovi aggiungendo ai riferimenti (nel mio caso ADO 2.8):
Microsoft ADO Ext. 2.8 for DLL and Security
cioè MSADOX.DLL
Prova anche a dare un'occhiata qui:
http://support.microsoft.com/default.aspx?scid=kb;en-us;232060
Ciao!
LeleB.

 ha scritto nel messaggio 
news:sgsLd.8701$QG6.1...@twister2.libero.it...


 
Nella finestra dei riferimenti, prova a scegliere "Sfoglia" e cerca il file
c:\programmi\file comuni\system\ado\msadox.dll
Ciao.
LeleB.

> non lo trovo di simile c'č solo MSADODC.DLL (Microsoft ADO Data Control 


 
http://www.randem.com/support.html
grazie. gran bel link.
ciao, j.

 Qualche suggerimento???
Disinstalla l'MDAC:
1. C:\mdac_typ.exe /c /t:c:\MDACSetup
2. CD MDACSetup
3. C:\MDACSetup\>dasetup.exe /u
E poi reinstallalo.
(
http://support.microsoft.com/default.aspx?scid=kb;en-us;842193
)
Ciao!


Subject: Re: VB->ACCESS non installato
Date: Tue, 17 Feb 2004 09:54:22 +0100
Newsgroups: microsoft.public.it.vb
A livello di distribuzione di applicativi che usano il Jet e il DAO, devi
verificare che tutta una serie di file siano presenti e installati
correttamente. Per fare ciò dai un'occhiata a queso articolo:
213846 INFO: Deploy Database Applications with the Package and Deployment
http://support.microsoft.com/?id=213846
Soprattutto la sezione relativa al DAO 3.6. Il Jet 4.0 che è l'altra parte
coinvolta in questo, non viene più distribuito con l'MDAC a partire dalla
versione 2.6, quindi devi distribuire anche quello:
271908 INFO: MDAC Version 2.6 and Later Do Not Contain Jet or Desktop ODBC
http://support.microsoft.com/?id=271908