Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169

    Recuperare Id del record inserito [uploadBaol]

    Ciao Ragazzi, sto utilizzando l'upload di baol, funziona tutto bene però avrei l'esigenza di recuperare l'id del record inserito. Altre volte ho recuperato tranquillamente tale record ma non ho utilizzato l'upload.

    Questo è il codice che utilizzo in altri script per recuperare l'id:
    codice:
    ' stringa di connessione 
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\miosito.it\db\dati.mdb;"
    Set objConn = Server.CreateObject("ADODB.Connection") 
    objConn.Open strConn 
      
    'Richiamo l'ID del record inserito
    strSQL = "select @@identity FROM Tabella" 
    	
    ' Valorizziamo un recordset 
    Set objRs = Server.createObject("ADODB.recordset") 
    
    ' Eseguiamo la query.  
    objRs.open strSQL, objConn, 1, 3 
    
    ' Se la query restituisce un valore 
    If Not objRs.Eof Then 
    
    ' valorizza la variabile 
    idrecordinserito = objRs(0) 
    
    End If 
    
    Session("NumeroProgressivo") = idrecordinserito  
    
    objRs.Close 
    Set objRs = nothing 	
    objConn.Close 
    set objConn = Nothing
    Mentre questo è lo script per upload:
    codice:
    <% 
    Conferma = Request.Querystring("conferma")
    If Conferma <> "Ok" Then
       Response.Write("<script language=""JavaScript"">history.go(-1)</script>")
    End If
    %>
    
    <% 
    Dim oUpload, arrayCaratteri(18,1)
    
    arrayCaratteri(0,0) = "à"
    arrayCaratteri(0,1) = "&agrave;"
    arrayCaratteri(1,0) = "è"
    arrayCaratteri(1,1) = "&egrave;"
    arrayCaratteri(2,0) = "é"
    arrayCaratteri(2,1) = "&eacute;"
    arrayCaratteri(3,0) = "ì"
    arrayCaratteri(3,1) = "&igrave;"
    arrayCaratteri(4,0) = "ò"
    arrayCaratteri(4,1) = "&ograve;"
    arrayCaratteri(5,0) = "ù"
    arrayCaratteri(5,1) = "&ugrave;"
    arrayCaratteri(6,0) = " < "
    arrayCaratteri(6,1) = " &lt; "
    arrayCaratteri(7,0) = " > "
    arrayCaratteri(7,1) = " &gt; "
    arrayCaratteri(8,0) = "ç"
    arrayCaratteri(8,1) = "&ccedil;"
    arrayCaratteri(9,0) = "°"
    arrayCaratteri(9,1) = "&deg;"
    arrayCaratteri(10,0) = "£"
    arrayCaratteri(10,1) = "&pound;"
    arrayCaratteri(11,0) = "€"
    arrayCaratteri(11,1) = "&euro;"
    arrayCaratteri(12,0) = "["
    arrayCaratteri(12,1) = " &lt; "
    arrayCaratteri(13,0) = "]"
    arrayCaratteri(13,1) = " &gt; "
    arrayCaratteri(14,0) = "URL="
    arrayCaratteri(14,1) = "a href="
    arrayCaratteri(15,0) = "/URL"
    arrayCaratteri(15,1) = "/a"
    arrayCaratteri(16,0) = "EMAIL"
    arrayCaratteri(16,1) = "a href=mailto:"
    arrayCaratteri(17,0) = "/EMAIL"
    arrayCaratteri(17,1) = "/a"
    arrayCaratteri(18,0) = "'"
    arrayCaratteri(18,1) = "''"
    
    Set oUpload= new cUpload
    With oUpload
    ' stringa di connessione 
    .SetDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\miosito.it\db\dati.mdb;", "SELECT Top 1 * FROM Tabella"
    .EnabledAspUpload	= False
    .EnabledImageSize	= False 'Se impostata a true , vengono calcolate le dimensioni delle immagini.
    .EnabledLog 		= False
    .AutoRename 		= False
    .Overwrite		    = True
    .SetPath "/public"
    .Load
    .UploadOnly "Images"
    
    If Not .EOF then
    
    
    	While Not .EOF
    		 Select Case lCase(oUpload.Files("InputName"))
    	       Case "campo1"
    	            Foto = oUpload.GetFileName()
    	       Case "campo2"
    	            Logo = oUpload.GetFileName()
    	     End Select		
    		.Save		 
    	    .MoveNext
    	
    	Wend
    	    .Database.Open()
    		Professione		= Replace(.Form("Professione"), "'" , "''")
    		Email_pubblica	= Replace(.Form("Email_pubblica"), "'" , "''")
    		Politica		= .Form("Politica")
    		Lavoro			= .Form("Lavoro")
    		Famiglia		= .Form("Famiglia")
    		
    		If Professione = "" Then
    		 	Professione="N.D."
    			.Database.Fields("Professione") = Professione
    		Else
    		    .Database.Fields("Professione") = Professione
    		End If
    		 
    		If Email_pubblica = "" Then
    		   Email_pubblica ="N.D."
    		   .Database.Fields("Email_pubblica") = Email_pubblica
    		Else	   
       			If instr(Email_pubblica, "@") = 0 & Or_ & instr(Email_pubblica, ".") = 0 Then
           			'Email non valida
           			Session("error1") = "Ok"
           			Response.Redirect ("error1.asp")
      	   		Else
           'Email valida
    	   	   .Database.Fields("Email_pubblica") = Email_pubblica
    		    End If
    	    End If 
    		
    		 If Politica = "" Then
    		 	 Politica = "N.D."
    			.Database.Fields("Politica") = Politica
    		 Else
    			For i = 0 To uBound(arrayCaratteri)
                	Politica = replace(Politica,arrayCaratteri(i,0),arrayCaratteri(i,1))
    				Politica = replace(Politica, VbCrLf, "
    ")
                Next	
    		 	.Database.Fields("Politica") = Politica
    		 End If
    		 
    		 If Lavoro = "" Then
    		 	 Lavoro = "N.D."
    			.Database.Fields("Lavoro") = Lavoro
    		 Else
    			For i = 0 To uBound(arrayCaratteri)
                	Lavoro = replace(Lavoro,arrayCaratteri(i,0),arrayCaratteri(i,1))
    				Lavoro = replace(Lavoro, VbCrLf, "
    ")
                Next	
    		 	.Database.Fields("Lavoro") = Lavoro
    		 End If
    		 
    		 If Famiglia = "" Then
    		 	 Famiglia = "N.D."
    			.Database.Fields("Famiglia") = Famiglia
    		 Else
    			For i = 0 To uBound(arrayCaratteri)
                	Famiglia = replace(Famiglia,arrayCaratteri(i,0),arrayCaratteri(i,1))
    				Famiglia = replace(Famiglia, VbCrLf, "
    ")
                Next	
    		 	.Database.Fields("Famiglia") = Famiglia
    		 End If
    		
    		.Database.Fields("Foto") = Foto	
    		.Database.Fields("Logo") = Logo
    		.Database.Fields("Id_Ord") = Session("IDOrdine")
            .Database.Fields("NomeCd") = Session("NomeCd")
    		.Database.Fields("CognomeCd") = Session("CognomeCd")
    		.Database.Fields("ComuneCd") = Session("ComuneCd")
    		.Database.Fields("Lista") = Session("Lista")
    		.Database.Fields("NomeCm") = Session("NomeCm")
    		.Database.Fields("CognomeCm") = Session("CognomeCm")
    		.Database.Fields("ComuneCm") = Session("ComuneCm")
    		.Database.Fields("IndirizzoCm") = Session("IndirizzoCm")
    		.Database.Fields("RecapitoCm") = Session("RecapitoCm")
    		.Database.Fields("EmailCm") = Session("EmailCm")
    		.Database.Fields("Fatturazione") = Session("Fatturazione")
    		.Database.Fields("Servizio7") = Session("Servizio7")
    		.Database.Fields("Msg") = Session("Note")
    		.Database.AddNew()
    	
    Response.Redirect("mail_conferma.asp?conferma=Ok")
    else
     Response.write("<div align=""center"">Nessuna immagine selezionata!
    
    Clicca per reinserire i dati</div>")
    End If
    .Database.Close()
    End With
    Set oUpload = Nothing
    %>
    In definitiva dovrei inglobare il codice per recuperare l'id nello script dell'upload.

    Grazie

  2. #2
    strSQL = "INSERT INTO "& Tabella &" (campo1,campo2.....)VALUES ('"& campo1&"','"&campo2&"',)"


    cn.Execute(strSQL)


    strSQL = "SELECT @@IDENTITY FROM "& Tabella
    set objRS = server.createobject("adodb.recordset")
    objRS.Open strSQL, Cn
    if not objRS.EOF then
    id = objRS(0)
    end if
    objRS.Close
    set objRS = nothing

    cn.close
    set cn = nothing
    Ci sedemmo dalla parte del torto visto che tutti gli altri posti erano occupati."
    [Bertolt Brecht]

  3. #3
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169
    Originariamente inviato da asva
    strSQL = "INSERT INTO "& Tabella &" (campo1,campo2.....)VALUES ('"& campo1&"','"&campo2&"',)"


    cn.Execute(strSQL)


    strSQL = "SELECT @@IDENTITY FROM "& Tabella
    set objRS = server.createobject("adodb.recordset")
    objRS.Open strSQL, Cn
    if not objRS.EOF then
    id = objRS(0)
    end if
    objRS.Close
    set objRS = nothing

    cn.close
    set cn = nothing
    Non ho capito molto bene perchè dovrei fare un insert?
    Io faccio l'insert utilizzando la classe di baol utilizzando il metodo AddNew(), potresti essere più chiaro?


  4. #4
    ho inserito l'isert smplicemente come esempio


    tu realizzi l'insert come ti pare

    ma poi se vuoi recuperare l'ultimo inserimento

    utilizzi la
    select@@identity
    Ci sedemmo dalla parte del torto visto che tutti gli altri posti erano occupati."
    [Bertolt Brecht]

  5. #5
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169
    Originariamente inviato da asva
    ho inserito l'isert smplicemente come esempio


    tu realizzi l'insert come ti pare

    ma poi se vuoi recuperare l'ultimo inserimento

    utilizzi la
    select@@identity
    Ok questo lo sapevo già visto che altre volte avevo recuperato l'Id.
    Nel mio caso specifico avevo provato a fare così ad aggiungere select@@identity dopo il Set oUpload = Nothing ma non mi restituisce niente.


  6. #6
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169
    Ho provato ad aggiungere questo subito dopo .Database.AddNew() :
    codice:
    ....
    
    .SetDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\miosito.it\db\dati.mdb", "select @@identity FROM Tabella"
    .Database.Open()
    		
    If Not .Eof Then 
      ' valorizza la variabile 
       idrecordinserito = Rs(0) 
    End If
    		 
    Session("NumeroProgressivo") = idrecordinserito
    ....
    Lo script non va in errore mi inserisce i dati nel db ma non mi recupera l'id.
    Idee...

  7. #7
    fattelo te a parte con un altro script...ovvero prima fai l'addNew e poi usi il tuo solito script
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169
    Originariamente inviato da Santino83_02
    fattelo te a parte con un altro script...ovvero prima fai l'addNew e poi usi il tuo solito script
    Infatti ho proprio intrapreso questa strada, dopo AddNew ho messo il moi script ma non mi recupera niente mi dice che l'id=0:

    codice:
    ....
    
    ' stringa di connessione 
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\miosito.it\db\dati.mdb;"
            Set objConn = Server.CreateObject("ADODB.Connection") 
            objConn.Open strConn   
    		
    		'Richiamo l'ID del record inserito
    	    strSQL = "select @@identity FROM Tabella" 
    	
    	    ' Valorizziamo un recordset 
            Set objRs = Server.createObject("ADODB.recordset") 
    
            ' Eseguiamo la query.  
            objRs.open strSQL, objConn, 1, 3 
    
            ' Se la query restituisce un valore 
            If Not objRs.Eof Then 
            ' valorizza la variabile 
               idrecordinserito = objRs(0) 
            End If
    		 
    	    Session("NumeroProgressivo") = idrecordinserito
    	
    	    objRs.Close 
            Set objRs = nothing 
    	
    	    objConn.Close 
    	    set objConn = Nothing
    ...
    Ci sto impazzendo

  9. #9
    1) Ma il campo è contatore?

    2) è giusta strSQL = "select @@identity FROM Tabella" ? Non è che ti sbagli e provi con "Tabella" senza mettere il nome giusto?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  10. #10
    Utente di HTML.it L'avatar di Giubass
    Registrato dal
    Oct 2003
    Messaggi
    169
    Originariamente inviato da Santino83_02
    1) Ma il campo è contatore?

    2) è giusta strSQL = "select @@identity FROM Tabella" ? Non è che ti sbagli e provi con "Tabella" senza mettere il nome giusto?

    1) Si il campo è contatore

    2) La stringa sql è giusta



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.