Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: errore in update db

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860

    errore in update db

    salve a tutti,

    capisco che il caldo mi stia giocando brutti scherzi, ma sono convinto che sto facendo il giro del mondo in 80 giorni per una cosa che probabilmente sarebbe fattibile in un nulla...
    qualcuno potrebbe controllarmi questo codice e dirmi come renderlo più fattibile?
    il mio obiettivo è di aggiornare un valore in una tabella di un db in cui esiste un solo record avente due campi id=1 e presenze che è appunto il campo dove immetto il valore.


    codice:
    <%
    Session("Contatore")=""
    Valore=""
    
    'Apro il db e recupero l'ultimo valore
    set myConn = server.CreateObject("ADODB.Connection")
    dim strConnDb
    strConnDb = ""
    strConnDb = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & server.mappath("/mdb-database/Clienti.mdb")
    myConn.Open(strConnDb)
    mySqlSelect = "select Presenze from Contatore"
    
    set myRSComS = server.CreateObject("ADODB.Recordset")
    
    myRSComS.Open mySqlSelect, myConn
    
    if not(myRSComS.EOF) and not(myRSComS.BOF) then	
      do while not(myRSComS.EOF)
        Valore = myRSComS(Presenze)
        myRSComS.MoveNext
      loop
    else
    
    myRSComS.Close
    set myRSComS=nothing	
    myConn.Close
    set myConn=nothing
    	
    response.write(Valore)
    response.end()
    
    NuovoValore = cint(Valore)
    If (NuovoValore<999999) Then
      Valorefinale = NuovoValore+1
    else  
      Valorefinale = 0
    end if  
    
    StringaValore = cstr(Valorefinale)
    LunghezzaValore= len(StringaValore)
    
    If (LunghezzaValore=1) Then
      NumContatore= "00000" & StringaValore
    end if
    If (LunghezzaValore=2) Then
      NumContatore= "0000" & StringaValore
    end if
    If (LunghezzaValore=3) Then
      NumContatore= "000" & StringaValore
    end if
    If (LunghezzaValore=4) Then
      NumContatore= "00" & StringaValore
    end if
    If (LunghezzaValore=5) Then
      NumContatore= "0" & StringaValore
    end if
    If (LunghezzaValore=6) Then
      NumContatore= StringaValore
    end if
    
    Session("Contatore") = NumContatore
    
    
    %>
    io lo vedo come un codice troppo lungo se poi si considera che manca ancora la fase di update del db qualcuno mi potrebbe dire come rendere tutto questo più performante per favore?


    Grazie mille!
    Linux Inside

  2. #2
    per la seconda parte

    valore = right("00000" & valore, 5)


  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    Originariamente inviato da optime
    per la seconda parte

    valore = right("00000" & valore, 5)


    x seconda parte alludi da stringavalore alla fine o da dove?


    Linux Inside

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    io capisco tutto ma...

    codice:
    <%
    Session("Contatore")=""
    Valore=""
    
    'Apro il db e recupero l'ultimo valore
    set myConn = server.CreateObject("ADODB.Connection")
    dim strConnDb
    strConnDb = ""
    strConnDb = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & server.mappath("/mdb-database/Clienti.mdb")
    myConn.Open(strConnDb)
    mySqlSelect = "select Presenze from Contatore"
    
    set myRSComS = server.CreateObject("ADODB.Recordset")
    
    myRSComS.Open mySqlSelect, myConn
    
    if not(myRSComS.EOF) and not(myRSComS.BOF) then	
      do while not(myRSComS.EOF)
        Valore = myRSComS(Presenze)
        myRSComS.MoveNext
      loop
    else
    
    myRSComS.Close
    set myRSComS=nothing	
    myConn.Close
    set myConn=nothing
    
    NuovoValore = cint(Valore)
    If (NuovoValore<999999) Then
      ValoreFinale = NuovoValore+1
    else  
      ValoreFinale = 0
    end if  
    
    NumeroContatore = right("00000" & ValoreFinale, 5)
    
    Session("Contatore") = NumeroContatore
    
    response.Write(NumeroContatore)
    response.end()
    
    
    %>
    perchè dovrebbe darmi errore

    Microsoft VBScript compilation error '800a03f6'

    Expected 'End'

    /contatore.asp, line 43

    dove la riga 43 è: response.end()

    Linux Inside

  5. #5
    capisci tutto, ma non leggi bene! manca un end! te lo dice... controlla bene il codice

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    emh... che pizza il caldo...

    anche se via uno via l'altro..

    ADODB.Recordset error '800a0cc1'

    Item cannot be found in the collection corresponding to the requested name or ordinal.

    /contatore.asp, line 21

    la riga 21 sarebbe: Valore = myRSComS(Presenze)

    il campo del record è presenze, presenze non è vuoto... non so che altro potrebbe esserci x non corrispondere
    Linux Inside

  7. #7
    a pingui', sei cotto... ..("presenze")

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    Originariamente inviato da optime
    a pingui', sei cotto... ..("presenze")
    si me ne sono accorto anch'io ma dopo una giornata intera di programmazione iniziano a decadere i riflessi...

    ragazzi solo una cosa, ma dato che io in update il db lo apro lo stesso non ho modo di fare tutto in uno?
    Mi spiego, invece di aprire prelevare l'info laborarla e poi fare l'update fare invece un update che preleva il valore lo elabora e poi lo aggiorna in forma elaborata?


    Grazie
    Linux Inside

  9. #9
    Originariamente inviato da ThePenguin
    si me ne sono accorto anch'io ma dopo una giornata intera di programmazione iniziano a decadere i riflessi...

    ragazzi solo una cosa, ma dato che io in update il db lo apro lo stesso non ho modo di fare tutto in uno?
    Mi spiego, invece di aprire prelevare l'info laborarla e poi fare l'update fare invece un update che preleva il valore lo elabora e poi lo aggiorna in forma elaborata?


    Grazie

    spiegati meglio

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    molto semplice,

    il mio codice è quello di un'apertura del db, di un richiamo del record e poi chiudo il db.
    chiuso il db io elaboro il valore incrementandolo di 1 ecc ecc..
    ora a questo punto dovrò modificare il campo presenze del db altrimenti la prossima volta siamo punto e a capo.

    quindi quello che mi ponevo io era invece di aprore 2 volte il db fare 2 query e compagnia bella non posso fare solo una in cui però ci faccio star dentro tutto quindi l'update del campo col nuovo lavore incrementato e via dicendo per poi solo all'ultimo buttare il valore nella variabile di sessione da portarmi in giro x tutto il sito?

    Linux Inside

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.