puoi dare un'occhio per favore....penso di abagliare qualcosa nella logica....
codice:
<%
tomove_id=request.querystring("id")
action=request.querystring("action")
Set Conn=Server.CreateObject("ADODB.Connection")
DbProdotti="driver={Microsoft Access Driver (*.mdb)}; "
DbProdotti=DbProdotti & " DBQ=" & Server.MapPath("db.mdb")
Conn.Open DbProdotti
' leggo id_order del record da spostare
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM voci WHERE id=" & tomove_id, Conn ,3,3
tomove_order = rs("id_order")
rs.Close
Set rs = Nothing
' guardo qual'e il record superiore e inferiore a quello da spostare
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM voci", Conn ,3,3
Do While Not rs.EOF
If up_found = false Then
If rs("id_order") < tomove_order Then
up_order = rs("id_order")
up_id = rs("id")
up_found = true
End If
End If
If low_found = false Then
If rs("id_order") > tomove_order Then
low_order = rs("id_order")
low_id = rs("id")
low_found = true
End If
End If
rs.movenext
Loop
rs.Close
set rs = Nothing
response.write ("tomove_order:" & tomove_order & "
")
response.write ("tomove_id:" & tomove_id & "
")
response.write ("up_order:" & up_order & "
")
response.write ("up_id:" & up_id & "
")
response.write ("low_order:" & low_order & "
")
response.write ("low_id:" & low_id & "
")
response.write ("ACTION:" & action & "
")
' assegno al record da spostare id_order di quello superiore
If action = "su" Then
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM voci WHERE id=" & tomove_id, Conn ,3,3
rs("id_order") = up_order
rs.update
rs.Close
Set rs = Nothing
' assegno al record superiore id_order di quello spostato
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM voci WHERE id=" & up_id, Conn ,3,3
rs("id_order") = tomove_order
rs.update
rs.Close
Set rs = Nothing
End If
' assegno al record da spostare id_order di quello inferiore
If action = "giu" Then
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM voci WHERE id=" & tomove_id, Conn ,3,3
rs("id_order") = low_order
rs.update
rs.Close
Set rs = Nothing
' assegno al record superiore id_order di quello spostato
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM voci WHERE id=" & low_id, Conn ,3,3
rs("id_order") = tomove_order
rs.update
rs.Close
Set rs = Nothing
End If
Conn.Close
Set Conn = Nothing
response.redirect ("default.asp")
%>