Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 1999
    Messaggi
    336

    VB:problema con errore Oggetto command

    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!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    78
    Scsa ma la query sql l'hai scritta tale e quale al codice che hai postato?
    Se si, hai detto che che il Ruolo è numerico, mi spieghi come fai ad inserire il valore prmRuolo in quella colonna?
    Mi spiego meglio se metti gli apici nella query stai passando una costante da te definita che contiene il valore PrmRuolo, se il campo è numerico non accetterà mai tale valore.
    Se togli gli apici cosa diventa quel valore per sql? Non è un numero(che è ciò che si aspetterebbe in quella posizione) non è una variabile perchè non interrompi la stringa con " & prmRuolo & " non è una costante da te definita e allora cosa gli resta da fare? per lui diventa il nome di una colonna inesistente.
    Prova a toglire gli apici da prmRuolo e metti un numero per esempi 1 e vedrai che tutto funziona correttamente
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 1999
    Messaggi
    336

    mmmm ...

    Grazie e scusa del ritardo.
    Si, la query sql l'ho scritta tale e quale al codice che ho postato ed immaginavo i problemi che tu mi dicevi ma ignoravo il fatto di mettere un numero nella query! Bhè poi ci ho provato, ho tolto gli apici al primo parametro che il debug mi segnalava nell'errore ed ho messo 1.
    A questo punto l'errore si è spostato sull'altro parametro numerico (giustamente!) e cioè su quello relativo all'articolazione. Ho fatto la stessa cosa ed anche lì è passata ma poi mi ha detto che era impossibile convertire una stringa in un datetime (ari-giustamente!!) e quindi l'ho fatto anche per i due parametri relativi ai due campi data che ho nella mia query. A questo punto ero quasi convinto di avercela fatta ma l'infame mi ha dato un nuovo tipo di errore (sempre nell'execute dell'oggetto command) la cui description è "String or binary data would be truncated", che non so bene cosa voglia dire penso di aver dimensionato male i parametri può essere che dici?Comunque tramite la finestra immediata sono andato a testare la proprietà value di tutti i parametri del mio command è sembrerebbe averli presi...grazie tante!
    Ciao
    PS.Due cose se non è troppo: 1)ma perchè è bastato mettere la semplice cifra 1 in ogni parametro della query sql per fargli prendere tutti i parametri? 2)Non è che per caso sai anche perchè mi da quell'errore "String or binary data would be trucated"?

    Ciao!!

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