Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563

    VB6 - Sparizioni recordset...

    Salve a tutti.
    Ho realizzato un programma di fatturazione con anagrafica e dettagli fatture.
    Il programma è abbastanza complesso, e comunque ho notato che improvvisamente, spariscono delle fatture, e non so che fine facciano, insomma vengono proprio elimate.
    Ho fatto varie prove, cercato in tutto il codice qualsiasi query di eliminazione ma non riesco a trovare questo errore dove sia.
    Sapete qualche metodo di debug, qualcosa tipo un log che può fare il database ogni volta che viene eseguita una query...
    Non so proprio come fare...
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Fossi in te non cercherei di capire cosa succede al database vedendo le query.

    Intanto bisogna capire cosa significa "spariscono delle fatture" ...

    Per fare una analisi corretta del problema, bisognerebbe conoscere

    1) la struttura del database e le relazioni tra le tabelle

    2) la modalita' di accesso al database (ADO, DAO, query, metodi, controlli ...)

    3) query di estrazione delle fatture, altre query presenti nel programma ...

    ... e magari anche tanto altro ... in poche parole, sarebbe necessario effettuare un debug complessivo sull'intero codice dell'applicazione (almeno quello relativo al trattamento delle fatture ) ...

    P.S. Per quanto riguarda il titolo ... i record e il recordset sono cose diverse ... a te sembrano essere spariti i record ... non il recordset ...

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Intanto grazie mille per la risposta.
    Il metodo delle query giustamente non ti sembra adeguato.
    La mia idea era di fare una specie di file log in cui inserivo ogni singola operazione compiuta sulle fatture, diciamo.
    Cosi se mi trovo una fattura sparita, io vado nel file log e cerco se, casomai, è stata effettuata una query...

    ad ogni modo fornisco alcune informazioni sul database.

    1) la struttura del database e le relazioni tra le tabelle
    Le fatture sono strutturate in 2 tabelle, chiamate anagfatture e dettfatture, nelle quali vi sono dei dati, ma tutte e 2 condividono un dato: il numero fattura.

    2) la modalita' di accesso al database (ADO, DAO, query, metodi, controlli ...)
    Accedo al database tramite ADO (ADODB.Connection e ADODB.Recordset sono le classi che utilizzo), in particolare:
    codice:
    //Sia cs un ADODB.Connection e rs un ADODB.Recordset
    cs.execute(Query As String) //per eseguire una query senza risultati (di solito un update o un delete)
    rs.addnew - rs.update //per aggiungere un record ad una tabella
    Se servono altre informazioni, sono disponibilissimo.
    Thank you.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E per eliminare?

    E poi, da cosa ti accorgi che non ci sono delle fatture?

    1) Non trovi ne' testata ne' dettaglio

    2) Non trovi il dettaglio

    In visualizzazione? In modifica? In stampa?

    Quando avviene la sparizione? Dopo che hai aggiornato/stampato la fattura?

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Io ho inizialmente pensato di fare una ricerca in tutto il progetto e di cercare qualsiasi parte in cui ci fosse "Delete * from anagfatture"
    Ho cosi cercato ma ho trovato risultati poco incoraggianti: solo 2 occorrenze nel tasto Elimina fattura e riorganizzazione annuale, che avviene, appunto, una volta l'anno, quindi non è lui.
    E' in questo modo che elimino le fatture, quando serve, ed è possibile solo in un modo: premendo il tasto elimina.

    Come mi accorgo che mancano le fatture?
    nel programma ho messo un datagrid nel quale si vedono i dati di Anagfatture.
    All'improvviso mi ritrovo record mancanti e non mi spiego perchè.
    Però i dettagli rimangono, cosa che, da codice, sembra impossibile in quanto nelle uniche parti in cui io ho previsto un'eliminazione, si elimina sia angrafica che dettaglio.

    Quando avviene la sparizione?
    Purtroppo non lo so, altrimenti avrei concentrato tutta l'attenzione in quel punto e riscrittone tutto il codice, se necessario...
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  6. #6
    ma per vedere se mancano veramente i record del master delle fatture guardi nel db o le controlli solo attraverso il tuo software?? potresti avere qualche problema di JOIN

    quando cancelli le fatture elimini prima il dettaglio o il master? eliminando prima il master potresti avere problemi perchè non hai più un riferimento per eliminare il dettaglio.

    le condizioni (WHERE) che usi nel DELETE sono giuste? Prova a fare un SELECT con le stesse condizioni e vedi cosa ti trova...

    queste sono alcune cose...
    I database... la mia passione + o -

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E soprattutto ... quando ti accorgi che mancano delle fatture, hai aperto il database e controllato che effettivamente mancano i record o no?

  8. #8
    Originariamente inviato da XWolverineX
    ............
    Come mi accorgo che mancano le fatture?
    nel programma ho messo un datagrid nel quale si vedono i dati di Anagfatture.
    All'improvviso mi ritrovo record mancanti e non mi spiego perchè.
    Però i dettagli rimangono, cosa che, da codice, sembra impossibile in quanto nelle uniche parti in cui io ho previsto un'eliminazione, si elimina sia angrafica che dettaglio.
    ............
    Ciao,

    premesso che secondo me le verifiche è molto meglio
    farle 'a mano' con query mirate nel db,
    mi sembra di capire (ed il mi sembra è d'obbligo) che non ci sia
    una relazione di integrità referenziale che impedisca l'eliminazione
    della testata fattura in caso abbia delle righe fattura;

    se la metti, IMHO, forse potresti isolare il problema ammesso
    che di problema di cancellazione si tratti;

    non capendo bene cosa significa che 'i dettagli rimangono'
    avanzo anche l'ipotesi, tutta da verificare sia chiaro , che invece
    di una DELETE possa essere un UPDATE errato che ti 'stacca'
    le righe dalla propria legittima testata;

    ... ma ovviamente sono molto lontano dall'avere la certezza di quanto detto

    HTH sspintux

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se puo' contare qualcosa, anche io sono dell'opinione che la responsabilita' sia di una UPDATE sbagliata che combina dei pasticci con gli ID che collegano testata e dettaglio ...

    E siamo in due ...

  10. #10
    ma per vedere se mancano veramente i record del master delle fatture guardi nel db o le controlli solo attraverso il tuo software?? potresti avere qualche problema di JOIN
    bè mi sembra che ankio qui gli domandavo se apre o no il db per controllare se i record li ha effettivamente cancellati...
    I database... la mia passione + o -

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.