Newsgroup: it.comp.www.asp
Titolo: asp e stored procedure

avrei bisogno di chiamare una stored procedure (oracle) da una pagina asp e
visualizzarne i risultati (la sp e' una semplice select).
ho trovato diversi esempi su come lanciare una sp (anche sul sito della
microsoft) ma ho problemi a farli funzionare).
ecco la parte del mio codice fino al punto in cui si blocca:
<%@ LANGUAGE="VBSCRIPT" %>
<!--#include file="adovbs.inc"-->
<HTML><BODY>
<%
set cn = Server.CreateObject("ADODB.Connection")
cn.ConnectionString = "filedsn=c:\mioDSN;UID=mioUID;PWD=miaPWD"
set cmd = Server.CreateObject("ADODB.Command")
cmd.CommandType = adCmdStoredProc
si blocca cioe' sull'istruzione "cmd.CommandType = adCmdStoredProc".
da cosa puo' dipendere?
il mioDSN dovrebbe essere configurato correttamente, visto che se lancio la
query secca da codice riesco a visualizzare i risultati
grazie in anticipo
Alessandra

Prova ad inserire la riga
Set cmd .ActiveConnection = cn
prima di definire il tipo.
Se il command non viene associato esplicitamente ad una connessione, non
sono sicuro che prenda quella di default.
Ad ogni buon conto, male non fa esplicitarlo.
Consiglio.
Per non esaurire troppe risorse sul server Oracle, apri e chiudi la
connessione, una volta per tutte, nel file global.asa e magari definisciti
un paio di command e di recordset da usare qua e la.
Ciao
Marco


sono andata un po' avanti (cambiando piu' che altro l'ordine di alcune
istruzioni)... ora il problema e' questo:
come posso catturare l'output della stored procedure e visualizzarlo in una
tabella (per esmpio)?
la sp e' una semplice select che lanciata come url restituisce in output una
cosa del tipo:
@1dato @2dato
@1altro dato @2altro dato
etc per tot record, dove @1 indica il campo 1 e @2 il campo 2
vorrei fare qualcosa del tipo
"set rstemp = cmd.Execute"
e poi gestire il tutto ma non riesco a farlo con i metodi che uso di solito
quando faccio una query secca da codice
sono sicura che il mio e' un caso particolare ma spero che possiate darmi
comunque un suggerimento.
grazie in anticipo
Alessandra

...


PS. Ci acevo preso con ActiveConnection?
si, io avevo messo l'istruzione molto dopo...
grazie ancora
Alessandra

Scusa la mia tontaggine ma proprio non capisco.
Mi posti la prima riga della SP (quella: PROCEDURE Nome (PARAMETRI IN/OUT)?
Non risco a capire come cerchi di recuperare i valori della select.
Io metterei un solo parametro di OUT e farei tornare un cursore già
riempito, dentro la SP, con il risultato dell'interrogazione.
Un esempio funzionante non te lo posso mandare prima di lunedi: al momento
lavoro su un progetto dove non c'é Oracle e quindi non ho con me i backup
dei lavori fatti.
Ergo, se hai urgenza, devi fidarti della mia lacunosa memoria
Ciao
Marco


La tua risposta mi fa pensare che probabilmente sto cercando di fare
qualcosa che in realta' non posso fare (o almeno non in questo modo...) :-/
in pratica io vorrei riutilizzare delle stored procedure scritte per
un'applicazione java che danno come output la famosa sequenza di cui ti
parlavo: @1 ....... @2......
mediante un'istruzione del tipo:
htp.print('@1' || campo1|| ' @2' || campo2)
che si trova in un loop dopo una fetch.
i valori di input (la prima riga che mi chiedevi) sono DEFAULT NULL e io
intendo non darli
(non sono io a scrivere le sp)
grazie ancora
Alessandra

Scusa ma con la print puoi mandare un echo del risultato.
Il tuo obiettivo deve invece essere quello di valorizzare una variabile,
preferibilmente di tipo cursore, e assegnarla ad un recordset ADO.
Se la SP non è fatta per fare questo non credo che riuscirai a recuperare i
valori.
D'altra parte, se il tuo scopo è solo quello di fare il fath di un po' di
dati perché usare la SP?
Io delegherei ad Oracle pesanti operazioni fatte sui dati.
Ma una semplice Select la farei direttamente da ADO.
Tanto il tempo di esecuzione è insignificante per Oracle ed il fatch impiega
comunque lo stesso tempo
Fammi sapere
Marco


dati perché usare la SP?
hai ragione, io ho preso la sp piu' semplice che ho trovato che restituiva
un certo output per cercare il modo di gestirlo. il mio era un semplice
esercizio per capire se potevo riutilizzare le mie sp o dovevo riscriverle.
mi sembra pero' di capire che per come stanno le cose non posso, giusto?
non ho provato ancora operazioni di inserimento, modifica o cancellazione ma
mi sembrano logicamente piu' fattibili. penso che comunque queste ultime
saranno poi le sp che usero' di piu'.
grazie ancora
Alessandra