23 messaggi dal 21 agosto 2004
Ho una funzione (esposta come metodo di un webservice) che restituisce una stringa Sql generata in un certo modo, riempie un dataset dato quale parametro, con una tabella che contiene i risultati della stessa query.


es.
function pippo(byref ds as dataset) as string
    dim da as new sqladapter, sql as string = getquery(...) 'la query viene generata dinamicamente

    with da
        .selectcommand = new sqlcommand(sql, new sqlconnection(cn_string))
        .selectcommand.connection.open
        .fill(ds)
        with .selectcommand
            .connection.dispose
            .connection = nothing
            .dispose
        end with
        .selectcommand = nothing
    end with
    return sql  
end function


Vorrei, se fosse possibile, che la funzione 'capisca' da sé se è stata utilizzata come funzione, cioé

es. variabile = rifweb.pippo(ds)


oppure come subroutine

es. rifweb.pippo(ds)


Questo perché mi deve semplicemente restituire la query generata SENZA fillare il dataset (quindi saltando la parte su database) se la uso come funzione, mentre mi deve riemprire il dataset coi dati estratti se la uso come subroutine.

E' possibile, quindi, far sì che la funzione nel webservice capisca se è stata utilizzata come funzione oppure subroutine? nel primo caso non voglio che venga riempito il dataset perché sarebbe un'inutile spreco di tempo e risorse se la query deve essere utilizzata in altro modo e non come previsto nella stessa funzione.

Altra domanda visto che ci sono :D
come potete vedere sopra, non ho istanziato delle variabili per il command e la connection, creandoli direttamente "all'interno" dell'adapter invece che assegnandoli, dopo averli creati a parte, alle sue proprietà. Questo perché pensavo che così si potesse risparmiare risorse non creando le variabili.... ho detto una cazzata oppure è come penso? cioé è utile fare così o non cambia una mazza?

grazie in anticipo :)
Alura..
non puoi, anche perché, ostacolo in più, per una chiamata ad un webservice c'è di mezzo http e soap.
Ti costa tanto fare due metodi, uno che restituisce solo la stringa e uno che restituisce il dataset?
Anche perché è brutto usato così. Il byref in un webservice non esiste, vengono comunque restituiti come parametri di ritorno e passati byvalue.

Per la seconda domanda. In pratica non cambia niente perché ci pensa l'adapter ad aprire e chiudere connessioni e a creare il command, risparmi certo sulle righe di codice

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.