Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 47

Discussione: Tipo di dato

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201

    Tipo di dato

    Buona sera e Buona domenica...
    Smanettando di quà e di là mi sono accorto di problema che sembrava semplice ma avrei da ridire... Mi spiego, nel mio db ho un campo per gestire le quantità inizialmente ho usato un campo numerico definito nel db come intero, ma poi dovendo trattare delle quantità particolari ho dovuto modificare in decimale precisione 18 scala 2 posizioni decimali 2. Ora vengo al dunque:
    nel db ho due tabelle relazionate merce e carico entrambe hanno un campo quantita, perchè devo gestire lo storico dei carichi ma devo anche aggiornare il campo quantità della merce quando ho un carico (scritto in italiano arcaico) per effettuare il carico/scarico dopo tante peripezzie ho creato questa pagina che praticamente mi aggiorna il campo quantita della tabella merce e mi scrive il nuovo valore nel campo quantità della tabella carico:

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


    <%
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("magazzino.mdb")
    strConn=strConn & ";pwd=" & strCode
    Conn.Open strConn
    sql = "Select * from merce where barre like '%" & Cerca & "%' or lotto like '%" & Cerca & "%'"

    Dim id_merc, button
    dim qta, qta_merce
    dim nuova_qta

    qta = request.form("quantita")
    button = request.form("button")
    id_merc = request.QueryString("ID_merc")

    %>

    <title>Untitled Document</title>
    </head>

    <body>

    <%IF button = "Carico" THEN%>

    <%

    sql_carico = "SELECT * FROM carico;"
    Set rs_carico = Server.CreateObject("ADODB.Recordset")
    rs_carico.Open sql_carico, conn ,3,3

    rs_carico.addnew
    rs_carico(1) = id_merc
    rs_carico(2) = qta

    rs_carico.update

    rs_carico.Close
    set rs_carico = Nothing

    sql_qta_merce = "SELECT quantita FROM merce WHERE ID_merc = "& id_merc &";"
    Set rs_qta_merce = Server.CreateObject("ADODB.Recordset")
    rs_qta_merce.Open sql_qta_merce, conn ,3,3

    qta_merce = rs_qta_merce("quantita")

    rs_qta_merce.Close
    set rs_qta_merce = Nothing

    nuova_qta = qta_merce + qta

    sql_update_merce = "UPDATE merce SET quantita = "& nuova_qta &" WHERE ID_merc = "& id_merc &";"
    conn.Execute(sql_update_merce)

    response.redirect "cerca.html"
    %>


    <%ELSE%>

    <%

    sql_scarico = "SELECT * FROM scarico;"
    Set rs_scarico = Server.CreateObject("ADODB.Recordset")
    rs_scarico.Open sql_scarico, conn ,3,3

    rs_scarico.addnew
    rs_scarico(1) = id_merc
    rs_scarico(2) = qta
    rs_scarico.update

    rs_scarico.Close
    set rs_scarico = Nothing

    sql_qta_merce = "SELECT quantita FROM merce WHERE ID_merc = "& id_merc &";"
    Set rs_qta_merce = Server.CreateObject("ADODB.Recordset")
    rs_qta_merce.Open sql_qta_merce, conn ,3,3



    qta_merce = rs_qta_merce("quantita")

    rs_qta_merce.Close
    set rs_qta_merce = Nothing


    nuova_qta = qta_merce - qta

    sql_update_merce = "UPDATE merce SET quantita = "& nuova_qta &" WHERE ID_merc = "& id_merc &" ;"
    conn.Execute(sql_update_merce)

    response.redirect "cerca.html"
    %>

    <%END IF%>


    </body>
    </html>
    <%

    Conn.close
    Set Conn = Nothing
    %>


    Il problema è: perchè se nel db definisco degli interi funziona invece se definisco decimali mi da errore?


  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Potrebbe essere perché nella forma decimale asp lo identifica come stringa prova a forzarlo come numero con FormatNumber().


    Consigli quando posti usa il tasti code/php che aiutano la lettura e commenta il codice asp nei vari step cosi si capisce la logica (utile anche te in futuro per eventuali modifiche)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201
    Ciao grazie per il consiglio, ho provato anche con format number, l'errore quando nel db ho i decimali viene generato da questa espressione: nuova_qta = qta_merce + qta, non capisco, ho usato volutamente il tipo Dim, però sembra non funzioni...

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    qta è una variabile dichiarata vuota (non valorizzata) poi la vuoi sommare qta_merce + qta
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201
    qta = request.form("quantita") La variabile che inserisco nel form è qta quindi non è vuota è una quantità che inserisco io, l'unica variabile vuota è nuova_qta.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Hai ragione mi era sfuggito, prova ad inserire dei response.write nei vari step per monitorare i processi
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201
    Ciao, allora ho provato con i response.write, permane il problema se nel db imposto interi nessun problema, ma se imposto i decimali allora ho un errore nella somma:

    nuova_qta = qta_merce + qta ... ahahhahah non ci credo!

  8. #8

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    201
    Buongiorno optime, l'errore che ottengo se nel db assegno il tipo decimale è questo:

    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A000D)
    Tipo non corrispondente
    /c_carico.asp, line 54
    Tipo di browser:
    Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17
    Pagina:
    POST 28 bytes to /c_carico.asp
    POST Data:
    quantita=1%2C2&button=Carico

    la linea 54 fa riferimento a questo: nuova_qta = qta_merce + qta ...

  10. #10
    fatti stampare qta_merce e qta *prima* di sommarle, e controllale

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 © 2026 vBulletin Solutions, Inc. All rights reserved.