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

    Conoscere l'ID appena inserito

    Ciao a tutti, vorrei sapere se è possibile, dopo aver effettuato:

    codice:
    SQL = "SELECT * FROM evidenze 
    RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
    RecSet.Addnew
    posso conoscere l'ID ovvero il numero contatore attribuito ai record inseriti?

    o lo devo reinterrogare?

  2. #2
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    cerca sul forum "Identities"

  3. #3
    trovato ... ci stò impazzendo... perhè secondo te mi restituisce:

    Errore di compilazione di Microsoft VBScript (0x800A0400)
    Prevista istruzione
    /test/gal/Evidenze/News_DB.asp, line 106

    il codice è questo:

    codice:
    <%
    ' PERCORSO DEL DATABASE 
    url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("../../mdb-database/database.mdb")
    
    Set Conn = Server.CreateObject("ADODB.Connection") 
    conn.Open url_DB
    
    ' CONTROLLA SE TUTTI I CAMPI SONO STATI COMPILATI
    IF Len(Request("autore")) = 0 or Len(Request("titolo")) = 0 or Len(Request("contenuto")) = 0 then
    ' CAMPI NON COMPILATI!
    %>
    <hr>
    <p align="center"><font face="Verdana" size="4">Campi non compilati!</font></p>
    <hr>
    <%
    Else
    ' CAMPI COMPILATI
    
    ' RICEVE L'OPERAZIONE DA SVOLGERE (AGGIUNGERE/MODIFICARE NEWS)
    operazione = Request.QueryString("tipo")
    
    Set RecSet = Server.CreateObject("ADODB.Recordset")
    
    ' IN BASE ALL'OPERAZIONE CREA LA QUERY AL DATABASE
    
    IF operazione = "aggiungi" then
    ' DEVE AGGIUNGERE LA NEWS
    SQL = "SELECT * FROM evidenze"
    else
    ' DEVE MODIFICARE LA NEWS
    SQL = "SELECT * FROM evidenze WHERE ID = " & Request.Querystring("id") &""
    End IF
    RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
    
    ' OPERAZIONE : AGGIUNGI NEWS
    
    IF operazione = "aggiungi" then
    'Response.Write "Directory creata"
    RecSet.Addnew
    
    ' SE SI AGGIUNGE LA NEWS INSERISCE LA DATA CORRENTE
    RecSet("data") = date()
    End IF
    RecSet("titolo") = Server.HTMLEncode(Replace(Request.Form("titolo"), "'", "′"))
    RecSet("titoloeng") = Server.HTMLEncode(Replace(Request.Form("titoloeng"), "'", "′"))
    RecSet("autore") = Server.HTMLEncode(Replace(Request.Form("autore"), "'", "′"))
    RecSet("contenuto") = Server.HTMLEncode(Replace(Replace(Request.Form("contenuto"), chr(13), "
    "), "'", "′"))
    RecSet("contenutoeng") = Server.HTMLEncode(Replace(Replace(Request.Form("contenutoeng"), chr(13), "
    "), "'", "′"))
    RecSet("gal") = Server.HTMLEncode(Replace(Request.Form("gal"), "'", "′"))
    RecSet("attivo") = 0
    ' AGGIORNA E CHIUDE IL DB
    RecSet.Update
    RecSet.Close
    Set RecSet = Nothing
    %>
    <hr>
    <p align="center"><font face="Verdana" size="4">Operazione eseguita
    correttamente!</font></p>
    <hr>
    <%
    End IF
    Conn.Close
    Set Conn = Nothing
    %>
    <%
    <% 
    'Settaggio recordset objRS 
    set objRS = Server.CreateObject("ADODB.recordset") 
    'Query 
    strSQL = "SELECT @@IDENTITY FROM evidenze" 
    'Apertura del recordset ed esecuzione della query 
    objRS.Open strSQL, conn 
    ultimo_id = objRS(0) 
    'Chudura e distruzione dell'oggetto recordset 
    response.write(ultimo_id)
    response.end
    
    Dim newdir
    Dim newdirs
    Dim newsdirss
    newdir = "../../evidenzeupload/"&gal&"/"
    newdirs = "../../evidenzeupload/"&gal&"/"&maker&""
    newdirss = "../../evidenzeupload/"&gal&"/"&maker&"/"&ultimo_id&""
    
    Dim objFile
    Set objFile = Server.CreateObject("Scripting.FileSystemObject")
    
    If objFile.FolderExists(Server.MapPath(newdir)) AND objFile.FolderExists(Server.MapPath(newdirs)) THEN
       objFile.CreateFolder Server.MapPath(newdirss)
    Else 
       objFile.CreateFolder Server.MapPath(newdir)
       objFile.CreateFolder Server.MapPath(newdirs)
       objFile.CreateFolder Server.MapPath(newdirss)
    End if
    objRS.Close 
    set objRS = nothing 
    'Chiusura connessione "conn" 
    %>
    L'errore mi viene poi restituito sulla riga

    codice:
    RecSet("autore") = Server.HTMLEncode(Replace(Request.Form("autore"), "'", "′"))
    che non significa nulla.

    Dove è sbagliato?

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    1) Non capisco a cosa ti serva quel tipo di replace unita al htmlencode prima di inserire nel db...
    2) Tu chiudi la connessione prima di ricercare l'ultimo record inserito pertanto non ti desse quell'errore che hai ora te ne darebbe un altro per connessione chiusa.

    Roby

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.