Visualizzazione dei risultati da 1 a 10 su 10

Discussione: spostamento record

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461

    spostamento record

    Ciao a tutti,

    Devo eseguire un processo di "spostamento di record" in un db,

    ho creato un campo chiamato posizione e ad esso ho associato un numero, ho creato poi una pagina con un elenco dei prodotti e affianco ho 2 link, uno per spostare il prodotto di una posizione in basso, uno per spostarlo di una posizione in alto, nella pagina dove eseguo questa azione devo richiamare il record del prodotto selezionato e dire alla query di sottrarre o sommare(in base alla scelta di spostamento) di uno il numero di posizione pero di conseguenza l'altro che li sta affianco deve sommarsi/sottrarsi di uno,

    il mio problema sta nel eseguire questo processo...

    <%
    sql="SELECT * FROM PRODOTTO WHERE ID_PR='"&request("id_pr")&"'"
    aprirs sql
    rs("POS")=...
    %>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prima di aggiornare il record da spostare, devi aggiornare l'altro che assume la sua posizione.
    Quindi se il 3 diventa 4 vai prima al 4 e lo retrocedi di 1 e poi aggiungi 1 al numero 3.

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    <%
    sql="SELECT * FROM PRODOTTO WHERE ID_PR='"&request("id_pr")&"' AND ID_TI='"&request("id_ti")&"' AND ID_CAT='"&request("id_cat")&"'"
    aprirs sql
    rs("POS")=rs("POS")-1
    rs.update

    sql="SELECT * FROM PRODOTTO WHERE ID_PR='"&request("id_pr")-1&"' AND ID_TI='"&request("id_ti")&"' AND ID_CAT='"&request("id_cat")&"'"
    aprirs sql
    rs("POS")=rs("POS")+1
    rs.update
    %>

    ...ho provato a fare cosi ma non funziona...sicuramente non è giusto il modo in cui ho scritto l'operazione,

    mi da errore:
    error '80020009'

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    2 query e 2 execute devi fare... rs.update non serve

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    <%
    sql1="UPDATE PRODOTTO SET POS='"&rs("POS")-1&"' WHERE ID_PR='"&request("id_pr")&"' AND ID_TI='"&request("id_ti")&"' AND ID_CAT='"&request("id_cat")&"'"
    conn.execute(sql1)
    %>

    mi da type mismatch...dove sbaglio??

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    type.... il tipo di dato... confronti dati numerici con stringhe e/o viceversa...

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    <%
    sql1="UPDATE PRODOTTO SET POS='"&cint(rs("POS"))-1&"' WHERE ID_PR='"&request("id_pr")&"' AND ID_TI='"&request("id_ti")&"' AND ID_CAT='"&request("id_cat")&"'"
    conn.execute(sql1)
    %>

    stesso errore...

    comuqnue il campo POS è numerico intero.

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E se è intero perché metti l'apice nella query?

    Roby

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    hai ragione lo notato dopo cacchio!

    ..nada manco se tolgo gli apici...

    mi sta facendo sclerare!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    ok ora funziona:

    sql1="UPDATE PRODOTTO SET POS=POS+1 WHERE ID_PR='"&request("id_pr")&"'"
    conn.execute(sql1)

    pero come faccio a dirgli dopo di prendere il record con POS con valore maggiore di uno?

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