Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Ado command + sp + valori di ritorno

Ciao a tutti.
Ho un problema con una sp in sql e l'ado command... in sintesi, tramite la
sp effettuo l'insert in una tabella e devo restituire 2 valori: il campo
contatore (tremite @@identity) ed un campo ottenuto all'inserimento tramite
un trigger sulla tabella...
se eseguo la sp dal query analizer di sql7 ottengo i valori di ritorno come
mi aspetto, mentre tramite codice non ci riesco..
Riporto il codice della sp e poi quello che uso per  recuperare i dati
______________________________________________
sp:
______________________________________________
create procedure sp_crea_utente
(@rag_soc varchar(255)=NULL,
@tipo smallint,
@cognome varchar(255),
@nome varchar(255),
@via_a varchar(255) =NULL,
@cap_a varchar(5) =NULL,
@city_a varchar(255) =NULL,
@prov_a varchar(255) =NULL,
@tel_a varchar(15) =NULL,
@fax_a varchar(15) =NULL,
@via_u varchar(255),
@cap_u varchar(5),
@city_u varchar(255),
@prov_u varchar(2),
@tel_u varchar(15),
@fax_u varchar(15),
@email varchar(255),
@url varchar(255) =NULL,
@data_n datetime,
@luogo_n varchar(255),
@data_cost datetime =NULL,
@cod_fisc varchar(2) =NULL,
@p_iva varchar(15) =NULL,
@cciaa1 varchar(15) =NULL,
@cciaa2 varchar(13) =NULL,
@cciaa3 varchar(15) =NULL,
@cciaa4 varchar(15)=NULL,
@cciaa5 varchar(4) =NULL,
@enasarco varchar(10) =NULL,
@mandato bit= 0,
@deposito bit= 0,
@pag smallint = 1)
as
if exists(select cognome, nome, data_n, email from tbl_utenti where
(cognome=@cognome and nome=@nome and data_n=@data_n and email=@email))
 begin
 RAISERROR ('Utente già esistente', 16, 1)
 return
 end
insert into
tbl_utenti(rag_soc,tipo,cognome,nome,via_a,cap_a,city_a,prov_a,tel_a,fax_a,v
ia_u,cap_u,city_u,prov_u,tel_u,fax_u,email,url,data_n,luogo_n,data_cost,cod_
fisc,p_iva,a_cciaa_p,a_cciaa_n,ri_cciaa_p,ri_cciaa_n,ri_cciaa_anno,enasarco,
mandato,deposito,tipo_pag) values
(@rag_soc,@tipo,@cognome,@nome,@via_a,@cap_a,@city_a,@prov_a,@tel_a,@fax_a,@
via_u,@cap_u,@city_u,@prov_u,@tel_u,@fax_u,@email,@url,@data_n,@luogo_n,@dat
a_cost,@cod_fisc,@p_iva,@cciaa1,@cciaa2,@cciaa3,@cciaa4,@cciaa5,@enasarco,@m
andato,@deposito,@pag)
if @@error<>0
 begin
  RAISERROR ('Errore generico in insert', 16, 1)
  return
 end
select id_ut, p_code from tbl_utenti where id_ut=@@identity
_________________________________________________________
Ed ecco il codice:
    cmd.activeconnection=conn
    cmd.commandtype=1
    conn.begintrans
    cmd.commandtext=strsql
    set rs=cmd.execute
    id_utente = rs!id_ut
    pcode=rs!p_code
    ecc...
quando vado a leggere il valore  (rs!id_ut) mi da messaggio di errore
Attendo speranzoso
Grazie
Stefano
P.S. il codice è volutamente stringato perchè proviene da una pagina asp...
naturalmente tutti gli oggetti (conn,rs,cmd..) sono già stati istanziati...

 contatore (tremite @@identity) ed un campo ottenuto all'inserimento
[...]

 ha scritto nel messaggio
news:9gnhp1$lnd$1...@news.mclink.it...


 wrote in message
amIX6.422$Wg4.5...@news.edisontel.com...


 _________________________________________________________
Inoltre devi dichiarare e assegnare i parametri anche nel codice, prima di
lanciare il comando .EXEC, quando definisci l'oggetto COMMAND (cmd) in
questo modo:
        Cmd.Parameters.Append Comando.CreateParameter("@rag_soc", adVarChar,
adParamInput, 255,[oggetto o variabile di riferimento nel codice])
        Cmd.Parameters.Append Comando.CreateParameter("@id", adInteger,
adParamOutput, 6)
        Cmd.CommandType = adCmdStoredProc
        Cmd.CommandTimeout = 0        'questo serve x impedire che dia
errore di TIMEOUT
Dopo l'esecuzione, ti leggi i parametri di ritorno cosě:
[oggetto o variabile] = Cmd.Parameters("@id")
Prova.....
BYE BYE

 ha scritto nel messaggio
news:AJOX6.2807$Rq1....@news.infostrada.it...


 ha scritto nel messaggio
news:9gpiik$akotk$1...@ID-94341.news.dfncis.de...


 Ho un problema con una sp in sql e l'ado command... in sintesi, tramite la
[cut]