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
    87

    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
    87
    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
    scusa, ma non capisco: che vuol dire "si scompatta"?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    87
    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
    87
    Non uso ORDER BY

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    87
    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
    20,657
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.