Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    170

    conoscere id dopo update

    Salve a tutti,
    perdonate la mia domanda alquanto banale, ma davvero non ho idea di come fare,
    pratiacmente io ho questa connessione al mio database, al quale eseguo questo aggiornamento:

    codice:
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("db/site.mdb")
    sql = "SELECT * FROM Menu" Set rs = Server.CreateObject("ADODB.Recordset") 
    rs.Open sql, conn, 3, 3 
    RS.AddNew rs.Fields("Text")=gruppo 
    rs.Fields("ParentID")=id 
    rs.Update 
    RS.Close 
    Set RS=Nothing conn.Close Set conn=Nothing
    adesso vorrei sapere come posso ritrovarmi subito dopo il mio relativo ID che ha aggiunto(un contatore numerico chiamato "MenuID" nel mio caso) subito dopo il mio aggiornamento.

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Non ho capito la domanda.

  3. #3
    Ciao,

    molto probabilmente devi rifare la query
    dopo rs.close

    qualcosa del genere:

    rs.open "select menuid from menu order by menuid desc",conn,,

    rs.movefirst

    a quel punto fare il display del nuovo menuid

    e poi chiudere recordset e connessione

    un saluto

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: conoscere id dopo update

    Originariamente inviato da skylab
    Salve a tutti,
    perdonate la mia domanda alquanto banale, ma davvero non ho idea di come fare,
    pratiacmente io ho questa connessione al mio database, al quale eseguo questo aggiornamento:

    codice:
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("db/site.mdb")
    sql = "SELECT * FROM Menu" Set rs = Server.CreateObject("ADODB.Recordset") 
    rs.Open sql, conn, 3, 3 
    RS.AddNew rs.Fields("Text")=gruppo 
    rs.Fields("ParentID")=id 
    rs.Update 
    RS.Close 
    Set RS=Nothing conn.Close Set conn=Nothing
    adesso vorrei sapere come posso ritrovarmi subito dopo il mio relativo ID che ha aggiunto(un contatore numerico chiamato "MenuID" nel mio caso) subito dopo il mio aggiornamento.

    Grazie in anticipo
    Subito dopo l'inserimento (sotto a RS.close) scrivi:

    codice:
    strSQL = "SELECT @@IDENTITY AS MenuID from menu"
    Set objRs = conn.Execute(strSQL)
    lastid= objRs("iMenuID")
    @@IDENTITY recupera l'id inserito in una tabella (che sia un campo contatore), se non è quello che ti serviva come non detto.


    P.S. Consiglio meglio se usi INSERT INTO migliore e più performante di AddNew per l'inserimento dati.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    170
    Fantastico...era proprio quello che mi serviva
    Non era proprio a conoscenza di questo parametro :rollo:

  6. #6
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125

    Re: conoscere id dopo update

    Originariamente inviato da skylab
    questo aggiornamento:

    Generalmente in SQL quando si parla di 'aggiornamento' di un db si intende dire l'aggiornamento di un record già esistente nel db e si utilizza la sintassi SQL UPDATE ...

    se tu avessi utilizzato il termine nuovo 'inserimento' nel db avrei capito meglio la tua richiesta alla quale si deve applicare la sintassi SQL INSERT INTO... ad ogni modo il codice esatto di utilizzo di @@identity è il seguente:

    codice:
    strSQL = "SELECT @@identity FROM Menu"
    Set objRSIncremento = Server.CreateObject("ADODB.Recordset")
    objRSIncremento.Open strSQL, objConn
    
    if not objRSIncremento.eof then
       idrAutoIncremento = objRSIncremento(0)
    end if
    
    Response.Write AutoIncremento
    
    objRSIncremento.Close()
    set objRSIncremento = nothing
    
    objConn.Close()
    set objConn = nothing

  7. #7

    Re: Re: conoscere id dopo update

    Originariamente inviato da Mizushi
    Generalmente in SQL quando si parla di 'aggiornamento' di un db si intende dire l'aggiornamento di un record già esistente nel db e si utilizza la sintassi SQL UPDATE ...

    se tu avessi utilizzato il termine nuovo 'inserimento' nel db avrei capito meglio la tua richiesta alla quale si deve applicare la sintassi SQL INSERT INTO... ad ogni modo il codice esatto di utilizzo di @@identity è il seguente:

    codice:
    strSQL = "SELECT @@identity FROM Menu"
    Set objRSIncremento = Server.CreateObject("ADODB.Recordset")
    objRSIncremento.Open strSQL, objConn
    
    if not objRSIncremento.eof then
       idrAutoIncremento = objRSIncremento(0)
    end if
    
    Response.Write AutoIncremento
    
    objRSIncremento.Close()
    set objRSIncremento = nothing
    
    objConn.Close()
    set objConn = nothing

    se non erro, @@identity non torna un recordset nullo ma al piu 0. Inoltre ricordatevi sempre che deve essere eseguito nello stesso contesto in cui era stata fatta l'insert, ovvero non potete chiudere e riaprire la connessione al db nè usare una connessione diversa da quella usata nell'insert.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.