Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB6-SQL] Recupero dati da stored procedure

    Utilizzando una connessione ADO è possibile recuperare dati in un recordset richiamando una stored procedure con parametri di SQL?

    Non ci sono problemi se, ad esempio, la stored procedure contiene solamente un'istruzione di select.
    Si verificano invece errori (nell'apertura del recordset) se nella SP inserisco anche solamente una dichiarazione di variabile locale (e a me serve compilare alcune variabili, che userò come criteri, prima di effettuare la select finale).

    E' solo per evitare di utilizzare tabelle temporanee e poter eseguire tutto con un unico accesso al database.

    Spero di essere stato abbastanza chiaro,
    grazie, ciao.

  2. #2
    puoi postare il codice contenuto nella tua storedprocedure?

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

  3. #3
    Banalmente, se nella SP scrivo solo:

    - select * from tabella1

    tutto funziona correttamente. Se solo inserisco:

    - declare @criterio1 as tipo1
    - select * from tabella1 where campo1=@criterio1

    il metodo open del recordset non mi restituisce alcun risultato.
    Per il metodo open del recordset utilizzo la stringa di query "exec storedprocedurename".

  4. #4
    Originariamente inviato da CB900-Dave
    Banalmente, se nella SP scrivo solo:

    - select * from tabella1

    tutto funziona correttamente. Se solo inserisco:

    - declare @criterio1 as tipo1
    - select * from tabella1 where campo1=@criterio1

    il metodo open del recordset non mi restituisce alcun risultato.
    Per il metodo open del recordset utilizzo la stringa di query "exec storedprocedurename".
    per poter effettuare un filtro in base ad un parametro esterno devi utilizzare i parametri di input:
    codice:
    CREATE PROCEDURE sp_Prova
       @criterio1 VARCHAR(50)
    
    AS
    
      select * from tabella1 where campo1 = @criterio1
    
    GO
    e da vb devi chiamare la storedprocedure in questo modo:
    codice:
    Dim adoConn As New ADODB.Connection
    Dim adoRs As New ADODB.Recordset
    Dim strFiltro As String
    ...
    strFiltro = "..."
    
    Set adoRs = adoConn.Execute "EXEC sp_Prova " & strFiltro

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

  5. #5
    Ok, non sono stato io abbastanza preciso: volevi proprio il codice pari pari!

    Fai pure finta che so come si scrivono SP con parametri esterni, etc. etc.!

    Il problema è che sia se utilizziamo parametri esterni (come nel tuo esempio), sia se utilizziamo variabili interne (come nel mio):

    codice:
    CREATE PROCEDURE sp_Prova as
    
    declare @criterio1 as varchar(50)
    
    set @criterio1='abc'
    select * from tabella1 where campo1=@criterio1
    
    GO

    non mi viene restituito nessun risultato nel recordset!


    Funziona solo se la SP contiene una unica istruzione di select

    codice:
    CREATE PROCEDURE sp_Prova as
    
    select * from tabella1 where campo1='abc'
    
    GO
    Il tuo codice da te funziona?
    Se sì, vuol dire che ho qualche altro problema perchè da me non va.

    ciao

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.