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

    Problema INSERT INTO e recupero ultimo ID

    Salve, è la prima volta che scrivo e quindi abbiate pietà della mia poca esperienza sul settore...

    non riesco ad utilizzare SELECT @@IDENTITY o SELECT STORE_IDENTITY.

    Vorrei che dopo l'inserimento in database di alcuni valori tramite:

    codice:
    set insert = Server.CreateObject("ADODB.Command")
    insert.ActiveConnection = MM_con_trans_STRING
    insert.CommandText = "INSERT INTO ordini (ordine_user, ordine_pag, ordine_data, ordine_id, ordine_tot, ordine_sped)  VALUES ('" & MM_Username & "', '" & pagamento  & "', '" & data & "', '" & ordine_id & "', '" & tot & "', '" & st & "') "
    insert.CommandType = 1
    insert.CommandTimeout = 0
    insert.Prepared = true
    insert.Execute()
    dopo questo devo inviare altri dati ad altra tabella con ID dell'inserimento appena effettuato.
    Quello che sono riuscito a fare è questo:


    codice:
    set insert = Server.CreateObject("ADODB.Command")
    insert.ActiveConnection = MM_con_trans_STRING
    insert.CommandText = ("SET NOCOUNT ON; INSERT INTO ordini (ordine_user, ordine_pag, ordine_data, ordine_tot, ordine_sped)  VALUES ('" & MM_Username & "', '" & pagamento  & "', '" & data & "',  '" & tot & "', '" & st & "'); SELECT SCOPE_IDENTITY() AS ordine_id;")
    
    insert.CommandType = 1
    insert.CommandTimeout = 0
    insert.Prepared = true
    insert.Execute()
    Ma non funziona.

    Ma il comando SCOPE_IDENTITY funziona su ACCESS???

    Ho girovagato su internet ma ho più confusione di prima...

    GRAZIE a chiunque mi possa dare una mano

  2. #2

  3. #3
    ho provato col @@IDENTITY

    mi si produce questo errore

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

    Questo è il codice che ho inserito...

    codice:
    <%
    
    set insert = Server.CreateObject("ADODB.Command")
    insert.ActiveConnection = MM_con_trans_STRING
    insert.CommandText = ("SET NOCOUNT ON; INSERT INTO ordini (ordine_user, ordine_pag, ordine_data, ordine_tot, ordine_sped)  VALUES ('" & MM_Username & "', '" & pagamento  & "', '" & data & "',  '" & tot & "', '" & st & "'); SELECT @@IDENTITY FROM ordini;")
    
    
    insert.CommandType = 1
    insert.CommandTimeout = 0
    insert.Prepared = true
    insert.Execute()
    
    %>
    Posso usare il SELECT sulla stesa riga di comando INSERT INTO ????

  4. #4
    devi fare due query distinte

  5. #5
    OK grazie l'errore non c'è più....

    id recuperato con @@identity posso avere la certezza che sia quello giusto??? cioè collegato al'insert into appena eseguito???

    ho letto questo
    "Ti suggerisco SCOPE_IDENTITY() piuttosto che @@IDENTITY, dato che lo scope è locale e non a livello di sessione, avendo la certezza di recuperare il valore generato dal comando di INSERT della sessione corrente (e non quello generato ad esempio da un trigger di insert scatenato dal comando)."



    ora devo assegnare questo valore ad una variabile ordine_id che deve essere inserita in unaltra tabella...

    codice:
    <%
    
    set insert = Server.CreateObject("ADODB.Command")
    insert.ActiveConnection = MM_con_trans_STRING
    insert.CommandText = ("SET NOCOUNT ON; INSERT INTO ordini (ordine_user, ordine_pag, ordine_data, ordine_tot, ordine_sped)  VALUES ('" & MM_Username & "', '" & pagamento  & "', '" & data & "',  '" & tot & "', '" & st & "'); ")
    insert.CommandText = ("SELECT @@IDENTITY FROM ordini AS ordine_id;")
    
    insert.CommandType = 1
    insert.CommandTimeout = 0
    insert.Prepared = true
    insert.Execute()
    
    
    
    %>
    pensavo che aggiungendo "AS ordine_id" potessi risolvere il problema invece immagino che la devo recuperare in altro modo ?

  6. #6
    in access c'è solo @@identity

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.