Ciao a Tutti!!!
Ho una stored_procedure che mi restituisce l'IDFotografia, sia nel caso di inserimento di una nuova fotografia che nel caso di modifica, di una foto già presente.
Il mio problema è che non riesco a sapere questo IDFotografia da una
procedura che ho creato in VB. L'errore si genera sull'istruzione
mioCmd.Execute ed è questo:
Errore di run-time '-2147217913 (800040e07)':
[Microsoft][ODBC SQL Server] Si è verificato un errore durante la
conversione del tipo di dati da varchar a int.
Dov'è che sbaglio?
La store_procedure e la sub sono le seguente:
Grazie Mille a Tutti!!!codice:CREATE PROCEDURE sp_SalvatbFotografie @mioIDFotografia INT = 0,@mioNomeFotografia varchar(50), @miaDescrizione varchar(500) AS IF @mioIDFotografia=0 BEGIN INSERT INTO tbFotografie (NomeFotografia,Descrizione) VALUES (@mioNomeFotografia, @miaDescrizione) END ELSE BEGIN UPDATE tbFotografie SET NomeFotografia=@mioNomeFotografia, Descrizione= @miaDescrizione WHERE IDFotografia = @mioIDFotografia END select @mioIDFotografia = @@identity GO Public Sub Salvataggio() Dim mioCmd As New ADODB.Command Dim mioPar As ADODB.Parameter 'Oggetto Command per lanciare la stored procedure mioCmd.CommandType = adCmdStoredProc mioCmd.CommandText = "sp_SalvatbFotografie" mioCmd.ActiveConnection = miaConn 'Il parametro di ritorno per primo Set mioPar = New ADODB.Parameter mioPar.Direction = adParamReturnValue mioPar.Name = "RETURN_VALUE" mioPar.Type = adInteger mioPar.Size = 4 mioCmd.Parameters.Append mioPar 'Poi tutti gli altri, ecco un esempio del primo Set mioPar = New ADODB.Parameter mioPar.Direction = adParamInput mioPar.Name = "@mioNomeFotografia" mioPar.Type = adVarChar mioPar.Size = 50 mioPar.Value = txtNomeFotografia.Text mioCmd.Parameters.Append mioPar Set mioPar = New ADODB.Parameter mioPar.Direction = adParamInput mioPar.Name = "@miaDescrizione" mioPar.Type = adVarChar mioPar.Size = 500 mioPar.Value = txtDescrizione.Text mioCmd.Parameters.Append mioPar 'Dopo aver costruito i parametri lancio la stored mioCmd.Execute 'e quindi recupero il valore di ritorno If mioIDFotografia = 0 Then mioIDOut = mioCmd.Parameters(0).Value End Sub


Rispondi quotando
