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
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
le problematiche sono le seguenti:
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:
codice:
Errore nella clausola SELECT: espressione accanto a '='.
Impossibile analizzare il testo della query.
se invece trasformo il primo blocco nel seguente funziona correttamente
codice:
SELECT [41] FROM AnArticoli WHERE ([0] = @Id)
ma chiaramente non posso valorizzare la variabile @Scorta
Secondo voi dove sbaglio