Ho modificato la procedura per eseguire solo l'aggiornamento ed è la seguente:
dove
AnArticoli è la Datatable contenente tutte le informazioni degli articoli e possiede i seguenti due campi:
[0] = Int è il valore autoincrement = true cioè la PK
[41] = Varchar(50) ed è la quantità disponibile in magazzino prima dell'operazione
inoltre:
Id è l'Id dell'articolo che l'applicazione gli passa come parametro
Qty è la quantità da aggiungere a quelle esistente in AnArticoli
le problematiche sono le seguenti:codice:ALTER PROCEDURE dbo.StoredProcedure1 @Id as Int, @Qty as Decimal as declare @Scorta Decimal BEGIN SET NOCOUNT ON; SELECT @Scorta = [41] FROM AnArticoli WHERE ([0] = @Id) UPDATE AnArticoli SET [41] = @Scorta + @Qty WHERE ([0] = @Id) END
1) se eseguo il secondo blocco di istruzioni, funziona ma @Scorta( = 10) + @Qty ( = 12)
anziche restituire 22 restituisce 1012
2)Il primo blocco genera questo errore:
se invece trasformo il primo blocco nel seguente funziona correttamentecodice:Errore nella clausola SELECT: espressione accanto a '='. Impossibile analizzare il testo della query.
ma chiaramente non posso valorizzare la variabile @Scortacodice:SELECT [41] FROM AnArticoli WHERE ([0] = @Id)
Secondo voi dove sbaglio

Rispondi quotando