Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    leggere un indice dopo l'inserimento

    ciao
    ho inserito un record in un DB Sql Server e successicvamente all'inserimento vorrei leggere l'indice di tipo contatore:
    ho fatto :
    rst.addnew
    .bla bla
    rst.update
    chiave = rst("id").value

    il campo id è un'identità auto incrementante e l'inserimento del record funziona a dovere....ma.... non riesco a leggere la chiave!!!!

  2. #2
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Passa la connessione e il nome della tabella a questa funzione:
    codice:
    Function GetLastId(byRef Conn,TableName)
    Dim Rs
    	Set Rs = Conn.Execute("Select @@IDENTITY FROM " & TableName)
    	GetLastId = Rs(0)
    	Rs.Close()
    	Set Rs=Nothing
    end Function
    
    LastId=GetLastId(Conn,"NomeTabella")

  3. #3

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    Baol74 ha scritto

    Passa la connessione e il nome della tabella a questa funzione:

    code:--------------------------------------------------------------------------------
    Function GetLastId(byRef Conn,TableName)
    Dim Rs
    Set Rs = Conn.Execute("Select @@IDENTITY FROM " & TableName)
    GetLastId = Rs(0)
    Rs.Close()
    Set Rs=Nothing
    end Function

    LastId=GetLastId(Conn,"NomeTabella")

    --------------------------------------------------------------------------------

    Ho provato, non dà nessun errore, ma GetLastId non contiene nulla (neanche all'interno della funzione)
    Dove può essere l'errore?
    Grazie, ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    43
    Anch'io ho lo stesso problema. Sto usando sqlserver e grtlastid non contiene nulla, perché?

  7. #7
    GetLastId è una funzione di comodo.
    E' sufficiente eseguire la query SELECT @@IDENTITY autonomamente se la funzione non funziona.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    254
    Con
    Set Rs = Conn.Execute("Select @@IDENTITY FROM " & TableName)

    non mi funzionava, ho risolto con

    sql = INSERT INTO v_tabella & v_campi & " VALUES " & v_valori & "; SELECT @@IDENTITY"
    set rs=objconn.Execute(SQL).nextRecordSet

    Grazie, ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    43
    dite di fare qualcosa di questo tipo?

    <%set objconn = Server.CreateObject ("ADODB.Connection")
    objconn.Open Application("conexion")
    sql = "INSERT INTO Inc_TD_Incidencias descripcionincid, idsistema, idusuario, fechacreacion, tipoincidencia, archivo)"
    sql = sql & " values ( '" & descrip & "','" & rsquery("idsistema") & "', '" & rs2("idEmpresa") & "','" & fecha & "','" & tipo & "', '" & NomeFile1 & "' ) ; SELECT @@IDENTITY "
    set rs3=objconn.Execute(SQL).nextRecordSet

    ultimoID=rs(0)
    response.Write(ultimoID)
    rs3.close
    set rs3=nothing
    objconn.close%>

    Ho provato ma non funziona

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    43
    Ho usato un'altra funzione (utilizzabile solo con sql server2000 o superiore):

    PRINT IDENT_CURRENT('table')

    dove 'table' é il nome della tabella in cui cercare l'ultimo id inserito.
    Ho fatto un response.write della query completa, ho copiato la query in sql server e trova il valore correttamente. il problema é che non me lo copia nel recordset, questo é il codice:

    set con = Server.CreateObject ("ADODB.Connection")
    con.Open Application("conexion")
    sql = "INSERT INTO Inc_TD_Incidencias (descripcionincid, idsistema, idusuario, fechacreacion, tipoincidencia, archivo)"
    sql = sql & " values ( '" & descrip & "','" & rsquery("idsistema") & "', '" & rs2("idEmpresa") & "','" & fecha & "','" & tipo & "', '" & NomeFile1 & "' ) ; "
    sql = sql & " print ident_current ('Inc_TD_Incidencias')"
    con.execute(sql)
    set rs3=server.CreateObject("ADODB.Recordset")
    rs3.Open
    response.write("ciao" & rs3(0))
    rs3.close
    set rs3=nothing
    con.close%>

    i dati vengono inseriti, e nel response.write non mi scrive neanche il "ciao"

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.