Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    185

    Recordcount e recordset

    Perchè questo codice anzichè restituirmi come numero di recordcount, il numero di record che soddisfano la query, sempre -1???

    Set rs = conODBC.OpenRecordset("SELECT * FROM clienti_fornitori WHERE codice='aaa'", dbOpenDynamic, 0, dbOptimistic)

    a = rs.RecordCount

    Grazie a chi mi sa spiegare il motivo

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    119
    Osservazioni riprese dall'help DAO 3.60

    Utilizzare la proprietà RecordCount per conoscere il numero dei record a cui si è avuto accesso in un oggetto Recordset o TableDef. La proprietà RecordCount non indica il numero di record contenuti in un oggetto Recordset di tipo dynaset, snapshot o forward-only scrolling finché non si è avuto accesso a tutti i record. Quando si è avuto accesso all'ultimo record, la proprietà RecordCount indica il numero totale dei record non eliminati nell'oggetto Recordset o TableDef. Per forzare l'accesso all'ultimo record, utilizzare il metodo MoveLast nell'oggetto Recordset. È possibile utilizzare, inoltre, una funzione Count di SQL per determinare il numero approssimativo di record restituiti dalla query.

    Nota L'utilizzo del metodo MoveLast per riempire un oggetto Recordset appena aperto può influire negativamente sulla prestazione. A meno che non sia necessario disporre di un accurato RecordCount appena si apre un Recordset, è consigliabile attendere il riempimento dell'oggetto Recordset con altre parti di codice prima di effettuare il controllo della proprietà RecordCount.

    Man mano che i record vengono eliminati dall'applicazione in un oggetto Recordset di tipo dynaset, il valore della proprietà RecordCount diminuisce. I record eliminati da altri utenti, tuttavia, non vengono riflessi dalla proprietà RecordCount finché il record corrente non viene posizionato su un record eliminato. Se viene eseguita una transazione che influisce sull'impostazione della proprietà RecordCount ed in seguito vengono annullate le modifiche di quella transazione, la proprietà RecordCount non rifletterà il numero effettivo dei record rimanenti.

    Le modifiche apportate alle tabelle sottostanti non influiscono sulla proprietà RecordCount di un oggetto Recordset di tipo snapshot o di tipo forward-only scrolling.

    La proprietà RecordCount di un oggetto Recordset o TableDef che non contiene alcun record è impostata a zero.

    Quando si utilizzano oggetti TableDef collegati, la proprietà RecordCount è sempre impostata a –1.

    Se viene utilizzato il metodo Requery su un oggetto Recordset, la proprietà RecordCount verrà reimpostata come se la query venisse eseguita di nuovo.


    Spero di esserti stato utile.

    Bye


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    185
    Adesso ho capito perchè mi restituisce -1 ma recordcount per me è necessario per conoscere il numero di record presenti e inserire in base a quel numero un codice.
    Una soluzione sarebbe di utilizzare una query che mi restituisce il numero di record, altre soluzioni senza utilizzare una query di supporto?

  4. #4
    dopo che hai aperto il recordset fai un MoveLast e un MoveFirst. In questo modo accedi a tutti i record e quindi Recordcount ti indica il numero di record.


  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    185
    Grazie, funziona.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    185
    Ho scritto il codice per visualizzare il numero di record in una tabella solo che con un vb6 funziona con un altro che ho installato da un'altra parte mi restituisce -1, c'è qualche motivo per questa incongruenza?

    Set rs = conODBC.OpenRecordset("SELECT * FROM clienti_fornitori ORDER by codice", dbOpenDynamic, 0, dbOptimistic)
    rs.MoveLast
    rs.MoveFirst

    a= rs.RecordCount + 1

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.