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

    SELECT @@IDENTITY errore?

    Dopo il RsProd.Update ho inserito questo codice per conoscere l'Id del record che ho appena inserito:

    Set RsProdDet = Server.CreateObject("ADODB.Recordset")
    SqlRsProdDet = "SELECT @@IDENTITY FROM AnaProd"
    RsProdDet.Open SqlRsProdDet, Connect, adOpenStatic, adLockOptimistic

    Response.Write(RsProdDet("Id"))

    Mi da questo errore:

    ADODB.Recordset error '800a0cc1'
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o

    Come mai??

  2. #2
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    scrivi così
    Response.Write(RsProdDet(0))



    comunque se usi RsProd.Update
    non serve fare la select dopo
    nel campo id del recordset appena updatato c'è l'id appena creato
    Forza la magica ROMA

  3. #3
    Ops ho trovato questo:

    Response.Write(RsProdDet(0))

    Così funziona! Mi spiegate qual'è il meccanismo? Così ho copiato pari pari, ma non so cosa sto facendo.

  4. #4
    ciao albis, non ho visto la tua risposta.

    Non ho capito bene il discorso della SELECT.
    Se dopo RsProd.Update scrivo

    Response.Write(RsProd("Id"))

    Non mi stampa nulla

  5. #5
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    posta il codice.


    comunque quando fai una select di quel tipo
    "SELECT @@IDENTITY FROM AnaProd"
    il dato restituito non ha un nome

    quindi scrivendo
    Response.Write(RsProdDet(0))
    stai dicendo di restituirti la prima colonna

    in alternativa puoi dare un alias (un soprannome al valore richiesto e poi richiami quello)
    es.:

    "SELECT @@IDENTITY AS UltimoId FROM AnaProd"
    .
    .
    .
    Response.Write(RsProdDet("UltimoId"))
    Forza la magica ROMA

  6. #6
    Come mi hai detto funziona, comunque il codice è questo (ho tolto il superfluo):

    Set RsProd = Server.CreateObject("ADODB.Recordset")
    SqlRsProd = "SELECT * FROM AnaProd"
    RsProd.Open SqlRsProd, Connect, adOpenStatic, adLockOptimistic

    RsProd.AddNew

    RsProd("CodicePro") = Request.Form("Prodotto")

    RsProd.Update

    Set RsProdDet = Server.CreateObject("ADODB.Recordset")
    SqlRsProdDet = "SELECT @@IDENTITY FROM AnaProd"
    RsProdDet.Open SqlRsProdDet, Connect, adOpenStatic, adLockOptimistic

    Id = RsProdDet(0)
    Response.Write(Id & " - " & RsProd("Id"))

    Il Response.Write(Id) stampa l'id del record appena inserito (come serve), ma se scrivo Response.Write(RsProd("Id")) perfare una prova non stampa nulla.

  7. #7
    Utente di HTML.it L'avatar di albis
    Registrato dal
    May 2002
    Messaggi
    912
    se scrivi Set RsProd = Server.CreateObject("ADODB.Recordset")
    SqlRsProd = "SELECT * FROM AnaProd"
    RsProd.Open SqlRsProd, Connect, adOpenStatic, adLockOptimistic

    RsProd.AddNew

    RsProd("CodicePro") = Request.Form("Prodotto")

    RsProd.Update

    response.write "|" & RsProd("id") & "|"
    cosa ti restituisce ?
    Forza la magica ROMA

  8. #8
    Mi da questo:

    ||

    L'id è come se non ci fosse!

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.