Ho un grosso problema con un errore:
all'interno di un modulo di classe ho creato una connessione e un oggetto command che ha come proprietà ActiveConnection la mia connessione, CommandType = adCmdText e nella proprietà CommandText una query sql per fare l'inserimento di un record in una tabella contenente l'elenco degli utenti al Db che è
"insert into tblUtenti(Matricola,Cognome,Nome,InizioA
bilitazione, FineAbilitazione,ArticolazioneID,RuoloID
,Email,Note) values
('prmMatricola', 'prmCognome', 'prmNome', 'prmInizioAbilitazione','prmFineAbilitaz
ione', 'prmArticolazione', 'prmRuolo', 'prmEmail','prmNote')".
Poi ho creato dei parametri, tanti quanti sono i campi della tabella utenti con le istruzioni:
Set prm = cmd.CreateParameter("prmMatricola", adChar, adParamInput, 50)
cmd.Parameters.Append prm
cmd.Parameters("prmMatricola").Value = prpMatricola
Stessa cosa per gli altri parametri Cognome, Nome, Data Inizio, Data Fine, ArticolazioneID, RuoloID, Email, Note.
Quando vado in esecuzione il programma genera un errore all'atto dell'inserimento che è "Errore di runtime - Syntax error converting the varchar value 'prmRuolo' to a column of data type smallint"
Ho provato a togliere gli apici perchè il Ruolo è un campo che contiene una chiave esterna ed è di tipo numerico non di tipo stringa ma in questo modo il paramatro viene considerato una nome di colonna.
Il problema penso sia nella query sql perchè poi ho provato a passare all'oggetto command una stored procedure (dopo aver impostata la proprietà CommandType = adCmdStoredProc) che si "ciuccia" tutti i parametri e l'inserimento funziona, ma se poi riprovo a passare gli stessi parametri all'oggetto command tramite statement sql di nuovo il problema con il ruolo.
Remmandolo lo stesso di tipo di errore lo genera il parametro articolazione (prmArticolazione) che è un'altra chiave ad una tabella esterna.
Domanda: non è che non sia possibile utilizzare dei parametri con un oggetto Command che utilizza una query sql?So che lo stesso codice funzionerebbe se utilizzassi delle semplici variabili oppurtanmente dichiarate!
Anche se ho risolto il problema grazie alla stored gradirei una risposta perchè il dubbio a livello concettuale mi è rimasto...grazie in anticipo amigos!!![]()
![]()