Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247

    [VB6] ADODB.command

    Salve a tutti,
    volevo proporre un dubbio che mi pervade al quale non ho trovato ancora una risposta. Nella libreria ADO per riempirmi un recordset con dei dato estratti da un database Mysql uso il metodo ADODB.command, in maniera tale che ottengo anche il numero di record estatti con la query.
    EX:
    codice:
    Dim cmdSQLData As ADODB.Command
    dim numRecord as long
        Set cmdSQLData = New ADODB.Command
        Set cmdSQLData.ActiveConnection = CnDb
        cmdSQLData.CommandText = SQL
        cmdSQLData.CommandType = adCmdText
        Set rs = cmdSQLData.Execute(numRecord)
    Fino a qui tutto bene.
    Ora stò lavorando con il server SQL Microsoft e con lo stesso codice ottengo che il numero di record estatti è -1! Il recordset viene riempito con i dati, ma il commanset mi dà che i record affetti sono appunto -1!

    Siccome ero curioso di capire la motivazione di tale comportamento( forse dipende dal diverso driver usato per MySQL, se qualcuno di voi ha qualche idea in proposito lo ringrazio anticipatamente.


    Grazie e ciao!
    Andrea

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Il comportamento dipende dal tipo di cursore.
    Prova ad impostare :


    codice:
    rs.CursorLocation = adUseClient
    Set rs = cmdSQLData.Execute(numRecord)
    Ciao, Brainjar

  3. #3
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247
    Per prima cosa grazie per la risposta!

    Purtroppo la csa non cambia mettendo quel tipodi cursore.

    Altra Idea?

    Grazie mille!
    Andrea

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La frase SQL usata qual e'?

  5. #5
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247
    SQL:

    select * from wrmonitoringdata where date_recd_dtm > '2005-11-15 00:00:00'

    Quindi molto semplice!
    Andrea

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Subito dopo l'istruzione

    codice:
    Set rs = cmdSQLData.Execute(numRecord)
    inserisci la linea

    codice:
    MsgBox rs.CursorLocation & " " & CnDb.CursorLocation
    e leggi il risultato

  7. #7
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247
    Il risultato è

    3 3 !

    Ciao e grazie per l'aiuto!
    Andrea

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prova a inserire la linea

    CnDb.CursorLocation = adUseServer

    prima della Open della Connection (ovvero prima della CnDb.Open ...)

  9. #9
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247
    Mettendo il cursore lato server dal punto di vista del conteggio numero di records non cambia nulla(sempre -1 ottengo) mentre ora il recordset non mi viene caricato con i dati: infatti ottengo che
    codice:
    numRecord = rs.RecordCount
    dove numRecord = -1 mentre almeno prima mi dava il numero di record dentro il recordset!

    Ciao
    Andrea

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Aspetta un attimo ... ma prima ottenevi in rs.RecordCount il numero dei record letti ? E quindi il problema qual era?

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.