Ho una stored procedure in SQL Server 2005 con un parametro di ingresso varchar definito come:Come passare NULL o stringhe vuote al parametro di input della stored procedure con ADO e VB?
@Value varchar(24) = NULL
nella mia applicazione VB6 cerco di impostare il parametro di una funzione di ADO:
Set prmParamVal = cmdChkParam.CreateParameter(, adVarChar, adParamInput, Len(paramValue), paramValue)
Se il valore provo a passare è (lunghezza zero) stringa vuota, allora ottengo il seguente errore:
ADODB.Connection error '800a0e7c' Parameter object is improperly defined. Inconsistent or incomplete information was provided.
ho cercato di passare un valore NULL invece del vuoto st squillo, ma questo porta a diversi errori.
Come posso passare stringhe vuote o valori NULL alla stored procedure?
Ho già letto molti articoli e cercato forum (ho trovato anche la mia domanda diverse volte) ma senza la risposta giusta.
La soluzione finora per le stringhe vuote è impostare la lunghezza = 1 o impostare la stringa = "" (uno spazio vuoto). Ma questo non è davvero bello e mi piacerebbe inviare NULL. Ho anche sperimentato l'impostazione di paramValue su vbNull, Null, vbNullString o per impostare prmParamVal.value = Empty senza fortuna!
ah! ok, penso che la tua ultima frase sia stata importante! Il mio problema con null era sempre la lunghezza di zero - che porta a un errore.Così come nel mio db il parametro è definito come varchar (24) posso impostare la lunghezza a 24 - senza svantaggi? –
Sì, poiché il tuo sproc è un VARCHAR (24), imposta la lunghezza su 24. Non avrà alcun effetto negativo. –