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

    [SQL Server]Ultimo ID inserito

    Ciao,
    ho provato leggendo i vari tread a fare

    Conn = ConDB()
    set rs05 = server.CreateObject("ADODB.recordset")
    Sql_05 = "SELECT @@IDENTITY FROM tb_utenti"
    rs05.open Sql_05,Conn
    Last_ID = rs05(0)
    rs05 = nothing

    ma restituisce

    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A005B)
    Variabile oggetto non impostata: 'rs05'

    come mai?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    Conn = ConDB() 
    set rs05 = server.CreateObject("ADODB.recordset") 
    Sql_05 = "SELECT @@IDENTITY FROM tb_utenti" 
    rs05.open Sql_05,Conn 
    Last_ID = rs05(0) 
    rs05.Close
    Set rs05 = nothing 
    Roby

  3. #3
    mi sono perso in un bicchiere d'acqua..però

    set rs04 = server.CreateObject("ADODB.recordset")
    Sql_04 = "INSERT INTO tb_utenti (nome, cognome, ragsociale, settore, dipendenti, provincia, privacy)"
    Sql_04 = Sql_04 & " VALUES ('" & Nome & "', '" & Cognome & "', '" & RagSociale & "', '" & Email & "', '" & NDipendenti & "', '" & Provincia & "', 1)"
    rs04.open Sql_04,Conn
    'estraggo l'id dell'inserimento
    set rs05 = server.CreateObject("ADODB.recordset")
    Sql_05 = "SELECT @@IDENTITY FROM tb_utenti"
    rs05.open Sql_05,Conn
    Last_ID = rs05(0)
    set rs05 = nothing
    response.Write("LASTID: " & Last_ID)
    set rs04 = nothing

    Come mai inserisce i record, ma non mi restituisce l'ultima id?

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    L'inserimento non lo fai!

    Roby

  5. #5
    allora non ho capito bene la logica, l'inserimento avviene nella query precedente..quindi come devo fare?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La logica ci può anche stare ma manca un pezzo: l'esecuzione della query di inserimento.
    Crei la query ma non la esegui... Apri solo il recordset in base ad essa ed invece è sbagliato.

    codice:
    set rs04 = server.CreateObject("ADODB.recordset") 
    Sql_04 = "INSERT INTO tb_utenti (nome, cognome, ragsociale, settore, dipendenti, provincia, privacy)" 
    Sql_04 = Sql_04 & " VALUES ('" & Nome & "', '" & Cognome & "', '" & RagSociale & "', '" & Email & "', '" & NDipendenti & "', '" & Provincia & "', 1)" 
    Conn.Execute(Sql_04)
    
    'estraggo l'id dell'inserimento 
    set rs05 = server.CreateObject("ADODB.recordset") 
    Sql_05 = "SELECT @@IDENTITY FROM tb_utenti" 
    rs05.open Sql_05,Conn 
    Last_ID = rs05(0) 
    set rs05 = nothing 
    response.Write("LASTID: " & Last_ID) 
    set rs04 = nothing

    Roby

  7. #7
    quel Conn.Execute(Sql_04)

    conn sta per la connessione al db, perchè quello che non capisco è che se utilizzo il metodo che mi dici mi risponde "necessario oggetto Conn", ma se faccio il recordset.open sql,conn funziona!

    perchè questa differenza!?!?!

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Questo lo script corretto:
    codice:
    <%
    Sql_04 = "INSERT INTO tb_utenti (nome, cognome, ragsociale, settore, dipendenti, provincia, privacy)" 
    Sql_04 = Sql_04 & " VALUES ('" & Nome & "', '" & Cognome & "', '" & RagSociale & "', '" & Email & "', '" & NDipendenti & "', '" & Provincia & "', 1)" 
    Conn.Execute(Sql_04)
    
    'estraggo l'id dell'inserimento 
    set rs05 = server.CreateObject("ADODB.recordset") 
    Sql_05 = "SELECT @@IDENTITY FROM tb_utenti" 
    rs05.open Sql_05,Conn 
    if not rs05.EOF then
    Last_ID = rs05(0) 
    set rs05 = nothing 
    response.Write("LASTID: " & Last_ID) 
    rs04.Close
    set rs04 = nothing
    %>
    Le query di INSERT INTO, DELETE ed UPDATE si eseguono (Execute), le SELECT si aprono (Open).


    Roby

  9. #9
    il problema è che mi dice sempre che è necessario un'oggeto "comm", perchè con rs.open sql,comm tutto funziona, ma se utilizzo il mio comm con execute, decide di non funzionare?

    Conn = ConDB()

    function ConnDB()
    Dim Conns
    Set Conns = Server.CreateObject("ADODB.Connection")
    Conns.ConnectionString = "Provider=SQLOLEDB;Data Source=10.0.0.0;UID=useid;PWD=passwd;DATABASE=DBte st"
    ConnDB = Conns
    end function

  10. #10
    ok risolto.

    grazie

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.