Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 1999
    Messaggi
    269

    vb6 - dbf comprimere database

    Esiste un metodo con ADO, JET ecc... per comprimere un database dbf???
    Esattamente come si fa con Jet per mdb access.
    GFrazie.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Comprimere? E come lo comprimi un mdb?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 1999
    Messaggi
    269
    Sub COMPACT()

    Dim JRO As JRO.JetEngine
    Dim strSource As String
    Dim strDest As String

    On Error GoTo errore

    Set JRO = New JRO.JetEngine

    If Len(Dir$("C:\APPLICAZIONI\xxxx.ldb")) > 0 Then
    GoTo FINE
    Else
    strSource = "C:\APPLICAZIONI\xxxx.mdb"
    strDest = "C:\APPLICAZIONI\xxxx_BK.mdb"

    JRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data" & _
    " Source=C:\APPLICAZIONI\xxxxx.mdb", "Provider=Microsoft.Jet.OLEDB.4.0;Data" & _
    " Source=C:\APPLICAZIONI\L0928_BK.mdb;Jet OLEDB:Engine Type=5"
    TEST_JRO = "OK"
    Kill strSource
    Name strDest As strSource

    FINE:
    Set JRO = Nothing

    End If

    Exit Sub

    errore:
    MsgBox "Errore Numero: " & CStr(Err.Number) & vbCrLf & "Descrizione: " & Err.Description & _
    vbCrLf & "Sorgente dell'Errore: " & Err.Source

    Err.Clear


    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic

    End Sub

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ah ... compattare ... non comprimere ... c'e' differenza ....

    Non mi pare si possa fare ... puoi creare un nuovo dbf e inserire tutto quello che c'e' nel vecchio, cancellare il vecchio e rinominare il nuovo ... ma devi farlo tu da codice ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 1999
    Messaggi
    269
    ... scusa e che quadagno c'è a ricopiare gli stessi record in un nuovo db dbf???

    quindi se ho ben capito:
    -creare un dbf blank via codice (si ma come si fa da codice?)
    -creare i stessi campi del vecchio in quello nuovo (si ma come si fa da codice?)
    -fare un loop dei cecchi e riciali nel nuovo? (questo lo so fare )

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da sal21
    ... scusa e che quadagno c'è a ricopiare gli stessi record in un nuovo db dbf???
    Che nel dbf finale non ci sono i record cancellati in quello originale. Quindi la sua dimensione sara' minore.

    quindi se ho ben capito:
    -creare un dbf blank via codice (si ma come si fa da codice?)
    -creare i stessi campi del vecchio in quello nuovo (si ma come si fa da codice?)
    Se non lo sai fare, tieni nel progetto un file vuoto (modello) da copiare quando ti serve.

    -fare un loop dei cecchi e riciali nel nuovo? (questo lo so fare )
    Se solo sapessi cosa vuol dire in italiano "dei cecchi e riciali" ti risponderei ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 1999
    Messaggi
    269
    Originariamente inviato da oregon
    Che nel dbf finale non ci sono i record cancellati in quello originale. Quindi la sua dimensione sara' minore.



    Se non lo sai fare, tieni nel progetto un file vuoto (modello) da copiare quando ti serve.



    Se solo sapessi cosa vuol dire in italiano "dei cecchi e riciali" ti risponderei ...
    -fare un loop dei vecchi records e ricopiarli nel nuovo? (questo lo so fare )

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da sal21
    -fare un loop dei vecchi records e ricopiarli nel nuovo? (questo lo so fare )
    Ah ecco ... va bene ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Scusa Antonio, ma mi risulta che i record marchiati come 'deleted' saranno copiati ugualmente, a meno di non usare l'istruzione

    SET DELETED ON/OFF

    E non sono sicuro che in VB6 questa istruzione funzioni.

    Seconda cosa, i campi MEMO saranno copiati pari pari senza essere ottimizzati.


    A questo punto, allora sarebbe più facile usare l'istruzione

    PACK

    che esegue entrambi i compiti.
    Peccato che in VB6 non funzioni...
    Né collegandosi al database DBC (se FoxPro) né alla tabella DBF.
    Le ho provate tutte, quando mi ci sono scontrato qualche anno fa.


    @Sal21
    Per avere il massimo potere di azione, se hai il VisualStudio EE hai anche VisualFoxPro, quindi ti converrebbe creati un progettino in VisualFoxPro.
    Tanto per quello che ti serve bastano usare 2 istruzioni sulla tabella:

    codice:
    USE tabella 'esempio: USE anagrafica
    PACK
    USE        ' per chiudere la tabella
    Io ho sempre fatto così.


  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da gibra
    Scusa Antonio, ma mi risulta che i record marchiati come 'deleted' saranno copiati ugualmente, a meno di non usare l'istruzione

    SET DELETED ON/OFF

    E non sono sicuro che in VB6 questa istruzione funzioni.

    Seconda cosa, i campi MEMO saranno copiati pari pari senza essere ottimizzati.
    Non uso i dbf da millenni ... ma si potrebbe impostare un campo apposito nel record per indicare che e' cancellato logicamente e considerarlo nel momento di riscrivere il record.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.