Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Come impostare variabile numerica

    Ho un Array memorizzato in una variabile session, nel quale aggiungo degli articoli con le relativa quantità e prezzi. Il problema nasce quando aggiungo uno stesso articolo e mi deve aggiornare le quantità. Invece di aggiungere la quantità a quella già esistente tramite la variabile 'qta' richiamata dal campo quantità di un form me la concatena come se fosse una stringa.
    Per maggior chiarezza posto il codice:

    codice:
    qta = Request("qta")
    
    ' Definizioni delle costanti
    CONST CARTPCOD=0
    CONST CARTPDESC=1
    CONST CARTPCONF=2
    CONST CARTPREP=3
    CONST CARTPIVA=4
    CONST CARTPPRICE=5
    CONST CARTPQUANTITY=6
    
    ' Creazione del box
    IF NOT isArray(Session("box")) THEN
      DIM localBox(7, 20)
    ELSE
      localBox=Session("box")
    END IF
    
    ' Aggiunta dell'articolo al box
    IF codice <> "" THEN
      foundIT = FALSE
      FOR i=0 TO UBOUND(localBox)
        IF localBox(CARTPCOD, i) = codice THEN
          localBox(CARTPQUANTITY, i)= localBox(CARTPQUANTITY, i) + qta
          foundIT=TRUE
          EXIT FOR
        END IF
      NEXT
      IF NOT foundIT THEN
        FOR i=0 TO UBOUND(localBox, 2)
          IF localBox(CARTPCOD, i )="" THEN
            localBox(CARTPCOD, i )=codice
            localBox(CARTPDESC, i )=desc
            localBox(CARTPCONF, i )=conf
            localBox(CARTPREP, i )=reparto
            localBox(CARTPIVA, i )=iva
            localBox(CARTPPRICE, i )=prezzoList
            localBox(CARTPQUANTITY, i )=qta
            EXIT FOR
          END IF
        NEXT
      END IF
    END IF
    Come si puònotare all'inizio raccolgo la quantità dal form e poi sotto la aggiungo alla quantità già esistente se lo stesso articolo è gia presente nella session.
    Il problema è che così facendo invece di sommarla me la concatena.
    ES: se ho già quantità 1 dell'articolo x e aggiungo quantità 2 sempre di questo articolo invece di sommare e darmi 3 mi fa 1+2=12
    Come mai????
    :master:

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    localBox(CARTPQUANTITY, i)= cint(localBox(CARTPQUANTITY, i)) + Cint(qta)
    Roby

  3. #3
    codice:
    localBox(CARTPQUANTITY, i)= cLng(localBox(CARTPQUANTITY, i)) + cLng(qta)

  4. #4

  5. #5
    localBox(CARTPQUANTITY, i)= cLng(localBox(CARTPQUANTITY, i)) + cLng(qta)
    Questo è corretto.
    Grazie ragazzi!!

  6. #6
    Originariamente inviato da Roby_72
    Ho vinto io!
    Ce ho più long!

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma il mio almeno è Intero. :ignore:

    Roby

  8. #8

    Aggiornamento database

    ho un'altro quesito per voi che riguarda sempre questo codice. Successivamente ho una query che mi aggiorna le quantità sul database 'prodotti' in questo modo:

    codice:
    IF conferma <> "" THEN
    
       FOR i=0 TO UBOUND(localBox, 2)
       SQL="UPDATE prodotti SET Qta_Disponibile = Qta_Disponibile - ' " & localBox(CARTPQUANTITY, i) & " ' WHERE codice = ' " & localBox(CARTPCOD, i) & " ' AND elimina = 'False' "
       objConn.Execute(sql)
       Next
       Session.Abandon
       END IF
    Non mi dà nessun errore ma stranamente la 'Qta_Disponibile' non viene diminuita. Come mai???




  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La quantità sarà un campo numerico.

    Roby

  10. #10
    Si è un campo numerico, infatti non mi ero reso conto dei doppi apici, lo tolti ma mi restituisce questo errore:

    [Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting the varchar value ' & localBox(CARTPQUANTITY, i) & ' to data type int

    Ho controllato sul db e il campo 'Qta_Disponibile' è tipo int
    ????
    ma tutte a me le stranezze?

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.