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?
![]()

Rispondi quotando
