Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    62

    Evitare la scompattazione del db in vb.net

    Salve a tutto il forum, avrei il seguente problema.

    All' avvio dell' applicazione faccio la compattazione del db in questo modo:

    Dim jro As JRO.JetEngine
    jro = New JRO.JetEngine
    jro.CompactDatabase("Provider=Microsoft.ACE.OLEDB. 12.0;Data Source=C:\Aziendale 2015\Aziendale 2015.mdb;Jet OLEDB:Engine Type=5", _
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Aziendale 2015\Aziendale 2015 compact.mdb;Jet OLEDB:Engine Type=5")
    My.Computer.FileSystem.DeleteFile("C:\Aziendale 2015\Aziendale 2015.mdb")
    My.Computer.FileSystem.RenameFile("C:\Aziendale 2015\Aziendale 2015 compact.mdb", "Aziendale 2015.mdb")

    La compattazione funziona correttamente, ma mi si presenta un problema.

    Appena arrivo circa a mille fatture, da vb net si scompatta, spiego meglio.

    A mille fatture, aggiungo una nuova fattura e non me la mette alla fine, ma tra la 400 e la 450, la devo

    andare a cercare e compilarla, inserendo cliente eccetera.

    Come si evita la scompattazione del db?

    Mi potete passare il codice?

    Distinti Saluti

    Fabio Messina

  2. #2
    che vuol dire: "A mille fatture, aggiungo una nuova fattura e non me la mette alla fine, ma tra la 400 e la 450, la devo andare a cercare e compilarla, inserendo cliente eccetera." ? Se usi un classico id incrementale, anche access (con tutti i suoi limiti) mette il nuovo record in fondo...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    62
    Io per la fattura uso un id numerico. In access va bene, il record me lo mette sempre alla fine e da programma che ho il problema, si scompatta.

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    62
    Mi aggiunge il record, da programma di vb.net, non alla fine ma nel mezzo. Forse si scompatta?

  6. #6
    cavolo, ma che vuol dire "si scompatta", "lo aggiunge nel mezzo"? Che "ORDER BY" usi quando elenchi da VB?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    62
    Non uso ORDER BY

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    62
    Non uso ORDER BY faccio l' insert del nuovo recod il Fill e il MoveLast per spostarmi sul record appena inserito.
    Ultima modifica di jekisi; 07-06-2020 a 11:51

  9. #9
    prima del .movelast prova a mettere .movefirst, .refresh, .requery ... forse dipende da come apri la tabella. Se usi comandi SQL non hai di questi problemi

  10. #10
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    19,761
    indipendentemente da come intendi raggiungere il nuovo record (movelast non lo prenderei come affidabile in questo caso), quello che non chiaro che questo record "vada nel mezzo".
    dici che l'identificativo numerico... non che invece in formato testo?
    e se non estrai il record ordinando la tabella (asc o desc), che fai... cerchi "l'ultimo"? ultimo in base a cosa?


    edit:
    hai considerato l'uso di SELECT @@IDENTITY FROM tabella?

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 © 2020 vBulletin Solutions, Inc. All rights reserved.