Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    cambio posizione di un record a scalare

    Ciao ragazzi,
    ho un DB in cui vorrei inserire un nuovo record...Questo DB di record ne ha 135 e quello che voglio inserire deve andare al numero 20.

    Ho un file asp che gestisce la posizione dei record;
    Questo è il codice del file:
    --------------------------------------------------------------------------

    <%
    Dim posizione, sposta, cod
    posizione=Request.Querystring("posizione")
    sposta=Request.Querystring("sposta")
    cod=Request.Querystring("cod")
    id_record = Request.Querystring("id_record")

    posizione_U = (posizione-10)
    posizione_D = (posizione+10)

    Set con = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")
    Set rs1 = Server.CreateObject("ADODB.Recordset")
    con.Open connStr

    if sposta = "U" then

    rs.Open "select * from prodotti WHERE id_sottocategoria="&cod&" and posizione="&posizione_U, connStr, 1, 3
    rs.Update("posizione") = posizione
    rs.Close
    set rs = nothing
    rs1.Open "select * from prodotti WHERE id="&id_record, connStr, 1, 3
    rs1.Update("posizione") = posizione_U
    rs1.Close
    set rs1 = nothing

    elseif sposta = "D" then


    rs.Open "select * from prodotti WHERE id_sottocategoria="&cod&" and posizione="&posizione_D, connStr, 1, 3
    rs.Update("posizione") = posizione

    rs.Close
    set rs = nothing

    rs1.Open "select * from prodotti WHERE id="&id_record, connStr, 1, 3
    rs1.Update("posizione") = posizione_D
    rs1.Close
    set rs1 = nothing

    end if

    con.Close
    SET con=nothing

    response.redirect "prodotti_esp.asp?sottocategoria=" & cod
    %>
    --------------------------------------------------------------------------
    Con questo file riesco a spostare un record di 10 posizioni su o giù, ma il record che viene sostituito non scala di uno come voglio io, ma va alla posizione vecchia di quello nuovo...

    A me interessa che scalino i record, non un cambio di posizione.
    Grazie per il vostro tempo
    Juan

  2. #2
    scalare? posizione? sono concetti un po' strani per un db. aggiungi un campo POSIZIONE e gestisci quello!

  3. #3
    sorry, vedo che c'è già.

    allora, fai così

    UPDATE tabella SET posizione=posizione+1 WHERE posizione>=20

    poi fai la INSERT del record in POSIZIONE 20


  4. #4
    grazie per la dritta optime...
    potresti però dirmi dove esattamente andrebbe fatta la modifica?

    UPDATE tabella SET posizione=posizione+1 WHERE posizione>=20

    Juan
    YOU'LL NEVER WALK ALONE

  5. #5
    come DOVE? il codice l'hai scritto tu, sai tu dove!

  6. #6
    no, in realtà non è mio...
    eh, eh

    grazie
    YOU'LL NEVER WALK ALONE

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