これらの 3 つのテーブル [ Orders、order_Items、order_comment ] があります。
| -Orders- | | -Order_Items- | | -Order_comment- |
| order_id | | order_RegCode | | order_id |
| order_RegCode |
ご覧のとおり、これら 3 つのテーブルは 2 つの一意のキーによって関連付けられています。order_id
とorder_RegCode
。
Ps:order_RegCode
は主キーではなく、文字列です!
注文を削除するときにorder_id
、他の2つのテーブルに保存されているすべての関連情報を削除したい。しかし、Do While を使用すると、 が得られerror Operation is not allowed when the object is closed
ました。
私を導いてください。
コードは次のとおりです。
Dim Order_ID
Order_ID = Int(Request.Form("ID"))
Set Conn = server.createobject("adodb.connection")
Conn.open StrConn
Set Rs = Conn.execute("SELECT * From orders WHERE order_id="& Order_ID &"")
If NOT Rs.EOF then
RegCode = Rs("order_RegCode")
'//== Delete Order
Set Rs = Conn.execute("Delete From orders where order_id = "& orderID &"")
'//== Delete All Comments Belong to Order
Set Rs = Conn.execute("Select * From order_comment where order_id = "& Order_ID &"")
If NOT Rs.EOF then
Do While NOT Rs.EOF
Set Rs = Conn.execute("Delete From order_comment where order_id = "& Order_ID &"")
Rs.MoveNext
Loop
End if
'//== Delete All Items Belong to Order
Set Rs = Conn.execute("Select * From order_items where order_code = '"& RegCode &"'")
If NOT Rs.EOF then
Do While NOT Rs.EOF
Set Rs = Conn.execute("Delete From order_items where order_code = '"& RegCode &"'")
Rs.MoveNext
Loop
End if
End if