Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254

    Contare i record in una Store Procedure

    Ciao a tutti, ho una SP di SQL Server che deve estrarre dei dati da un recordset; vorrei che mi restituisse anche il n° di record che ha trovato:
    ho provato a mettere nella SELECT anche COUNT(*) AS trovati, ma mi restituisce errore di sintassi; c'è qualcosa di analogo a rs.recordcount?
    Grazie Ciao

  2. #2
    metti qui tutta la sp.
    EX Mentecatto - succube della Honda
    Le mie foto|HONDA CLUB ITALIA!|DARTH LEGNANZ!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    Eccola
    codice:
    CREATE PROCEDURE QueryImpatto_SP
    @tipo int,
    @dal smalldatetime,
    @al smalldatetime,
    @trovati int output
    AS
    SELECT count(evento) as @trovati,utente.Tipologie.Des_Tipologia, Attivita.Tipologia, 
        Attivita.Dal, Attivita.Al, RigheEvento.Evento, 
        utente.UFFICIO.UFF_CDC, Attivita.Sede, RigheEvento.Ufficio, 
        utente.UFFICIO.DES_UFFICIO, 
        RigheEvento.NPersoneCoinvolte
    FROM utente.Tipologie INNER JOIN
        Attivita ON 
        utente.Tipologie.Cod_Tipologia = Attivita.Tipologia INNER JOIN
        utente.UFFICIO INNER JOIN
        RigheEvento ON 
        utente.UFFICIO.UFFICIO = RigheEvento.Ufficio ON 
        Attivita.Codice = RigheEvento.Evento
    where tipologia=@tipo  AND (NOT (dal>@al OR al<@dal) )
    ORDER BY  utente.UFFICIO.des_ufficio,RigheEvento.evento

  4. #4
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    nella query togli @trovati e metti trovati

    .... SELECT count(evento) as trovati .....

    e poi rs("trovati") ti dice quanti sono
    Tutti vogliono parlare, nessuno sa ascoltare.

  5. #5
    Non selezionare count e altri campi senza specificare la clausola GROUP BY
    cmq in questo caso non ti serve, togli il count e una volta ottenuto il recorset nella pagina asp puoi contare gli elementi con rs.recorcount()

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    Per Global66:
    hai ragione, sbagliavo la sintassi, ma purtroppo il count non funziona, mi restituisce sempre 1.
    Per dizionario:
    il recordcount mi restituisce -1 (per questo avevo provato ad usare il count nella select); forse dipende dal cursortype? Io uso
    codice:
    set objCmd = Server.CreateObject("ADODB.Command")
    objCmd.ActiveConnection = objConn
    objCmd.CommandType = 4'adCmdStoredProc	
    objCmd.CommandText="QueryImpatto_SP"
    
    set parm1=objCmd.CreateParameter("@tipo",adInteger,adParamInput)
    objCmd.Parameters.Append(parm1)
    parm1.Value=tipo
    set parm2=objCmd.CreateParameter("@dal",adDate,adParamInput)
    objCmd.Parameters.Append(parm2)
    parm2.Value=sel_dal
    set parm3=objCmd.CreateParameter("@al",adDate,adParamInput)
    objCmd.Parameters.Append(parm3)
    parm3.Value=sel_al
    Set objrst_attivita=objCmd.Execute()
    posso specificare un cursortype che supporta il recordcount?

    Grazie ad entrambi

  7. #7
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    se usi il conteggio con il recordset, usa 3 come cursore
    Tutti vogliono parlare, nessuno sa ascoltare.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    Ma con le SP, in cui creo il recordset con
    codice:
    Set objrst_attivita=objCmd.Execute()
    come faccio a specificare il tipo di cursore?

    l'istruzione objrst_attivita.cursortype non la riconosce più.

    Scusa, ma sono all'inizio con le SP ed ho ancora un po' di confusione.
    Ho provato a trovare un po' di materiale, ma non ho trovato molto.

    Grazie Ciao

  9. #9
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    http://authors.aspalliance.com/steve...les/sprocs.asp
    vedi il punto 3 di questo articolo


    e poi

    Set rs1 = Server.CreateObject("ADODB.Recordset")
    rs1.Open sql1, Conn, 3, 1, 4

    dove conn è la tua connessione
    sql la stringa sql che chiama la tua SP passando i parametri
    Tutti vogliono parlare, nessuno sa ascoltare.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    ma posso passare parametri che non siano caratteri? (nel mio caso devo passargli un intero e due date)
    Te lo chiedo perchè ho provato a scrivere
    codice:
    set objrst_attivita=Server.createobject("adodb.recordset")
    sql="exec QueryImpatto_SP tipo,sel_dal,sel_al"
    objrst_attivita.Open sql, objConn 3, 1, 4
    ma di dice "errore di sintassi o accesso negato"

    e se tolgo i parametri dopo la connessione mi dice "errore di conversione di tipo da nvarchar ad int"


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.