Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215

    [VB NET 2005] Eseguire StoredProcedure

    Premessa sto utilizzando le classi ODBC per lavorare su un database di Sqlserver 2005.

    allora ho tentato di fare questo.
    Invece di creare in maniera canonica la procedura per l'esecuzione di una stored con
    parametri ho pensato di costruirmi la stringa da mandare direttamente a sql con
    il comando comand.ExecuteNonQuery()
    ma non succede nulla.
    nello specifico cosa faccio.

    Creo una stringa per l'esecuzione della stored

    StrQuery = 'EXEC SP1 @NOME = 'Nome',@Cognome = 'Cognome'
    associo alla comand.
    Comand.commandtext = strquery
    ed eseguo il comando
    Comand.ExecuteNoQuery()

    solo che la tabella che la stored dovrebbe popolare non cambia di un record.
    Ora se lancio direttamente la strquery dal query analayzer la esegue correttamente.

    Il passaggio mancante e???

    Grazie per ogni risposta.

    Malkav
    La mia pazzia continua a prosciugare la mia anima

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,482
    Originariamente inviato da M@LKAV
    Invece di creare in maniera canonica la procedura per l'esecuzione di una stored con
    parametri ho pensato di costruirmi la stringa da mandare direttamente a sql con
    il comando comand.ExecuteNonQuery() [...]
    Perché hai fatto questa scelta?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215

    Re: [VB NET 2005] Eseguire StoredProcedure

    Prima di tutto perché credo sia un po macchinoso come interagisce in questo senso
    dot.net con le stored.
    in secondo luogo perché se cambia qualche parametro nella stored cmq devo andare a correggere il codice.
    E in terzo luogo perché nel queryanalaizer di sql server io non lancio nessuna procedura particolare per le stored.
    uso EXEC per identificare la procedura ma poi viene trattata come una comunissima Select.
    Da li ho pensato perché non fare la stessa cosa da vb.net??'
    Ma per ora non ho trovato nessun riscontro quindi non capisco se era giusto o sbagliato.
    La mia pazzia continua a prosciugare la mia anima

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,482

    Re: Re: [VB NET 2005] Eseguire StoredProcedure

    Originariamente inviato da M@LKAV
    Prima di tutto perché credo sia un po macchinoso come interagisce in questo senso
    dot.net con le stored.
    Si crea un comando, si valorizzano i parametri, si invoca la stored, si leggono i risultati... rispetto a quello che hai fatto tu, cambia solo che 1) scrivi a mano lo statement SQL, 2) devi occuparti di fare le conversioni specifiche in base al tipo di parametro, quindi non è scalabile, 3) crei comunque un comando e devi comunque valorizzare i parametri, 4) corri rischi di "SQL Injection", 5) ti devi occupare di raddoppiare apici e di fare tante altre amenità...

    Per tutti questi motivi, il tuo metodo mi sembra quello più macchinoso.

    Originariamente inviato da M@LKAV
    in secondo luogo perché se cambia qualche parametro nella stored cmq devo andare a correggere il codice.
    Questo devi farlo comunque, perché pur usando uno statement SQL, questo non è aggiornato e comunque devi andare a complementare il codice con la valorizzazione dei parametri in più, o in meno.

    Originariamente inviato da M@LKAV
    E in terzo luogo perché nel queryanalaizer di sql server io non lancio nessuna procedura particolare per le stored.
    Questa è una questione slegata da questo contesto, secondo me.

    Originariamente inviato da M@LKAV
    uso EXEC per identificare la procedura ma poi viene trattata come una comunissima Select.
    Da li ho pensato perché non fare la stessa cosa da vb.net??'
    Ma per ora non ho trovato nessun riscontro quindi non capisco se era giusto o sbagliato.
    Io invocherei la stored procedure utilizzando il "metodo classico": impostando correttamente le proprietà del Command e i relativi Parameter, delegando al framework tutti i compiti di interazione col database, conversione dei dati, controllo del risultato, ecc.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    ok!!
    Ma il perché non esegue la stored ???
    La mia pazzia continua a prosciugare la mia anima

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,482
    Originariamente inviato da M@LKAV
    Ma il perché non esegue la stored ???
    Le ragioni possono essere tante.

    Ad esempio, la stored è corretta? Usa uno dei parametri come filtro? E' possibile che specificando valori errati nei parametri non vi sia alcun record eleggibile per l'aggiornamento?

    Farei indagini più approfondite in questo senso, però cambierei anche l'approccio, proprio per escludere tutte le possibilità che portano ad alcuni dei problemi descritti sopra.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    Io vorrei andare in fondo al problema perché se stampo a video la stored e la eseguo direttamente dal queryanalaizer di sql la esegue correttamente.
    Ho notato anche che se per qualche motivo la stored va in errore me lo segnala con L'execption.
    La mia pazzia continua a prosciugare la mia anima

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,482
    Originariamente inviato da M@LKAV
    Io vorrei andare in fondo al problema perché se stampo a video la stored e la eseguo direttamente dal queryanalaizer di sql la esegue correttamente.
    Ho notato anche che se per qualche motivo la stored va in errore me lo segnala con L'execption.
    Hai controllato i quesiti che ho indicato nel messaggio precedente?

    Verifica qual è l'SQL effettivo, completo di valori, che viene passato per l'esecuzione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    già fatto, e corrisponde a piena a quello che sql si aspetta per eseguire la stored.
    La mia pazzia continua a prosciugare la mia anima

  10. #10
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    Originariamente inviato da alka
    Hai controllato i quesiti che ho indicato nel messaggio precedente?

    Verifica qual è l'SQL effettivo, completo di valori, che viene passato per l'esecuzione.
    Alka trovato.

    Trovato. Il mio errore era solamente che dovevo impostare la proprietà dell oggetto
    comand comandtype = storedprocedure.

    Per il resto funziona tutto correttamente.
    La mia pazzia continua a prosciugare la mia anima

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 © 2026 vBulletin Solutions, Inc. All rights reserved.