Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811

    [ado] differenza tra rs.recordcount = -1 e rs.eof = true

    salve a tutti

    hio un problema con recordset ado in vb6 con connessione access
    vorrei chiedervi la differenza tra rs.recordcount = -1 e rs.eof = true

    forse sbaglio ma dico la mia...
    dopo aver aperto una select
    recordcount indica i record presenti nella tabella e se è uguale a -1 significa che ha ragigunto la fine quindi nn c'è niente

    e rs.eof = true significa che ha ragginto la fine quindi nn ha trovato niente nella select che potesse interessare


    il problema è questo...
    dopo aver fatto una select, se ci sono record devo fare una determinata cosa , ma qualche volta capita che il recordset indica eof = true ma in realta' ha selezionato qualcosa (io faccio il controllo in access)
    mentre se vado a controllare nella finestra immediata di vb6 mi dice recordcount = 0

    e succede anche il contrario!!

    mi sono accorto che a volte recordcount = 0 mi ha preso un record vuotoin quanto se la provo in avcess mi da una riga con campi vuoti
    mentre mettendo distinct nella select nn mi restituisce ninente

    qualucno mi sa dare una spiegazione? grazie

  2. #2
    usa COUNT per contare i records...

  3. #3
    è documentato che recordcount è preciso solo dopo avere eseguito un movelast cioè dopo che glieli hai fatto contare
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  4. #4
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    il problema è che devo mettere le mani in un codice un po' complesso ecco perche' vorrei evitare di fare un'altra select con la count.

    se provo a vedere con .eof = true dite che è + sicuro?
    qui con questo metodo non incappo nella stringa vuota?
    che poi mi dice eof = true mentre nn c'è niente?

    grazie

  5. #5
    .eof ti riporta la fine del file. se fai una select semplice, .eof ti dice che non hai record. non dovresti quindi avere problemi. casomai riposta.

  6. #6
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    Originariamente inviato da optime
    .eof ti riporta la fine del file. se fai una select semplice, .eof ti dice che non hai record. non dovresti quindi avere problemi. casomai riposta.
    peccato che eof mi serve a poco in effetti con recordcount mi da la possibilita' divedere qanti record ci sono
    in quanto se sono 1 faccio una cosa
    >1 un'altra
    e -1 un'altra ancora

    cmq provo a mettere una movelast prima di vedree il recordcount
    grazie
    se nn va riposto:tongue:

  7. #7
    se usi una apertura tipo "objRs.open sSql, objConn, 3, 3", normalmente .recordcount ti restituisce un valore corretto. se aggiungi un .movelast sei certo.

  8. #8
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    Originariamente inviato da optime
    se usi una apertura tipo "objRs.open sSql, objConn, 3, 3", normalmente .recordcount ti restituisce un valore corretto. se aggiungi un .movelast sei certo.
    3,3? + MOVE LAST?
    un'ultima domanda ed ho finito!

    pensavo che 3,3 fosse gia' predefinito!
    e allora quale è il parametro predefinito?

  9. #9
    Originariamente inviato da xegallo
    è documentato che recordcount è preciso solo dopo avere eseguito un movelast cioè dopo che glieli hai fatto contare
    questo però è valido solo per DAO e non per ADO, e dopo il MoveLast è necessario effettuare pure un MoveFirst.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  10. #10
    Originariamente inviato da amodio
    3,3? + MOVE LAST?
    un'ultima domanda ed ho finito!

    pensavo che 3,3 fosse gia' predefinito!
    e allora quale è il parametro predefinito?
    è un problema di cursori.
    prova ad aprire il recordset così:

    Recordset.Open strSQL, Connection, 1, 3

    e poi

    If Recordset.RecordCount = 0 Then....


    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

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.