1

現在、tbl_orderにレコードを挿入するための更新コードがあります。これで、インベントリセクションを実装しました。注文が行われた後、システムが在庫から数量を差し引くことができる必要があります。

INSERT(Subtract(od_qty-tbl_inventory.inv_qty))について考えていますが、この場合のSQLステートメントがどのようになるかわかりません。だからあなたは助けてくれませんか。ありがとうございました

以下は、tbl_orderへのINSERTデータの現在の更新コードです。

<% 
dim od_total, cal_total, od_qty
cust_id = request.querystring("cust_id")
bill_id = request.querystring("bill_id")
pd_id = request.querystring("pd_id")
od_price = request.querystring("od_price")
od_qty = request.querystring("od_qty")
od_qty_unit = request.querystring("od_qty_unit")

date_current = date

        od_total = od_price * od_qty


Dim conn ' ADO connection
Dim rstSimple ' ADO recordset
Dim strDBPath ' path to our Access database (*.mdb) file
Dim bill_total

set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("../database/tkp.mdb"))
set rs=Server.CreateObject("ADODB.recordset")

' Next, the script inserts the form inputs retrieved from the querystring into the database table:
sql="INSERT INTO tbl_order (cust_id,bill_id,pd_id,od_price,od_qty,od_qty_unit,od_total)"
sql=sql & " VALUES "
sql=sql & "(" & cust_id & ","
sql=sql & "'" & bill_id & "',"
sql=sql & "'" & pd_id & "',"
sql=sql & "" & od_price & ","
sql=sql & "" & od_qty & ","
sql=sql & "'" & od_qty_unit & "',"
sql=sql & "" & od_total & ")"


'response.write sql
on error resume next
conn.Execute sql
if err<>0 then
Response.Write("No update permissions!") 'ae_name field is primary key so new record not inserted if name pre-exists in table
else
'Response.Write("<h3> Record added</h3>")
end if

rstSimple.Close
Set rstSimple = Nothing

conn.Close
Set conn = Nothing
%>
4

2 に答える 2

2

現在の在庫量から注文数量を差し引く更新クエリを在庫テーブルで実行する必要があります。このようなもの:

sql = "UPDATE tbl_inventory SET inv_qty = inv_qty - " & od_qty & " WHERE pd_id = " & pd_id
于 2012-10-02T03:49:29.083 に答える
1

トランザクション処理の問題を解決できるようになります

conn.BeginTrans
'—Run Your Statements Here
conn.Execute sql1
conn.Execute sql2
conn.CommitTrans

詳細については、こちらを参照してください: http: //classical-asp.blogspot.com/2010/08/transaction.html

編集:inv_date列が日時列であることを確認してください

sql1 = "UPDATE tbl_inventory SET inv_qty_act = inv_qty_act - " & od_qty & ", inv_date = now() WHERE pd_id = '" & pd_id & "'"
于 2012-10-01T10:56:24.847 に答える