Visualizzazione dei risultati da 1 a 8 su 8

Discussione: update sql multipli

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    45

    update sql multipli

    Tramite pagina asp devo effettuare un update multiplo in un data base access e succede che ci si va ad inserire solo l'ultimo valore : questo è l'elenco dei valori da inserire per l'aggiornamento:

    1.582
    1.744
    1.888
    1.936
    1.955
    1.982
    2.001
    2.019
    2.037
    2.055
    2.069
    2.085

    e nella tabella access come risultato trovo:

    2085
    2085
    2085
    2085
    2085
    2085
    2085
    2085
    2085
    2085
    2085
    2085


    questo è il codice della pagina asp:



    <%
    On Error Resume Next

    Set xml = Server.CreateObject("Microsoft.XMLHTTP")

    xml.Open "GET", "http://www.bof.fi/Stats/default.aspx?r=/tilastot/markkina-_ja_hallinnolliset_korot/euribor_korot_today_en&Type=XML", False

    If Not(Err.Number <> 0) Then
    xml.Send
    risultato = xml.responseText
    ' Response.Write(risultato)

    End If

    Set xml = Nothing
    'http://forum.webmasterpoint.net/showthread.php?p=58086


    origine=server.mappath("dati.xml")
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CreateTextFile (origine)
    Set OggFile = fso.GetFile (origine)
    Set OggTextStream = OggFile.OpenAsTextStream(2)
    OggTextStream.WriteLine risultato

    OggTextStream.close


    nomefile = "dati.xml"
    'connessione al file dati.xml
    Set objXMLDom = Server.CreateObject("Microsoft.XMLDOM")
    objXMLDom.load(Server.MapPath(nomefile))

    '************************************************* *********
    Set id = objXMLDom.getElementsByTagName("Cell")


    Set Conn=Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_
    server.MapPath("preventivo.mdb")&";PWD=tananna"
    if err.Number = 0 then
    Response.write "Connessione riuscita"&"
    "
    else
    Response.write "Connessione non riuscita"&"
    "
    end if
    Dim objRs


    Set objRs = Conn.Execute("SELECT valore from _eur")


    Do while NOT objRs.EOF


    response.write "vecchio valore = " & objRs("valore") & "
    "

    objRs.Movenext
    Loop

    objRs.Close
    Set objRs =Nothing

    Response.Write "

    "
    For i = 3 To id.length-16


    nome_attributo = id(i*2).getAttribute("txtb_value")

    response.Write "nuovo valore="&nome_attributo&"
    "



    set objRs1 = Conn.Execute("UPDATE _eur SET valore='"&nome_attributo&"'")




    Next





    %>

    qualcuno può aiutarmi a capire cosa non va? Grazie anticipatamente della collaborazione

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781

    Re: update sql multipli

    Originariamente inviato da a3g
    set objRs1 = Conn.Execute("UPDATE _eur SET valore='"&nome_attributo&"'")
    Ad occhio direi che il problema è qua: così, senza una clausola where, stai modificando tutti i record.
    Per quello poi tutti sono tutti aggiornati con l'ultimo valore.
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    45
    Il problema rimane sempre lo stesso pur avendo messo in pratica cio che hai detto tu. Ecco il nuovo codice modificato:



    <%
    On Error Resume Next

    Set xml = Server.CreateObject("Microsoft.XMLHTTP")

    xml.Open "GET", "http://www.bof.fi/Stats/default.aspx?r=/tilastot/markkina-_ja_hallinnolliset_korot/euribor_korot_today_en&Type=XML", False

    If Not(Err.Number <> 0) Then
    xml.Send
    risultato = xml.responseText
    ' Response.Write(risultato)

    End If

    Set xml = Nothing
    'http://forum.webmasterpoint.net/showthread.php?p=58086


    origine=server.mappath("dati.xml")
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CreateTextFile (origine)
    Set OggFile = fso.GetFile (origine)
    Set OggTextStream = OggFile.OpenAsTextStream(2)
    OggTextStream.WriteLine risultato


    OggTextStream.close










    nomefile = "dati.xml"
    'connessione al file dati.xml
    Set objXMLDom = Server.CreateObject("Microsoft.XMLDOM")
    objXMLDom.load(Server.MapPath(nomefile))

    '************************************************* *********
    Set id = objXMLDom.getElementsByTagName("Cell")



    Set Conn=Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_
    server.MapPath("preventivo.mdb")&";PWD=tananna"
    if err.Number = 0 then
    Response.write "Connessione riuscita"&"
    "
    else
    Response.write "Connessione non riuscita"&"
    "
    end if
    Dim objRs


    Set objRs = Conn.Execute("SELECT codice, valore from _eur")


    Do while NOT objRs.EOF
    old_valore = objRs("valore")

    response.write "vecchio valore = " & old_valore & "
    "

    objRs.Movenext
    Loop

    objRs.Close
    Set objRs =Nothing

    Response.Write "

    "

    For i = 3 To id.length-16


    nome_attributo = id(i*2).getAttribute("txtb_value")


    response.Write "nuovo valore="&nome_attributo&"
    "



    'set objRs1 = Conn.Execute("UPDATE _eur SET valore='"&nome_attributo&"'")

    set objRs1 = Conn.Execute("UPDATE _eur SET valore='"&nome_attributo&"'"&"where valore='"&old_valore&"'")


    Next






    %>


    inserisce sempre lo stesso valore.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Scusa ma perché non ti stampi la query?
    Non è che old_valore, visto che lo assegni fuori dal ciclo di update, valga sempre uguale?

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    45
    In che senso devo stampare la query? scrivere qualche cosa del tipo response.write nome dell' query?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Certo, altrimenti il debug come lo fai?

    codice:
    response.write ("UPDATE _eur SET valore='"&nome_attributo&"'"&"where valore='"&old_valore &"'")
    response.write("
    ")
    Roby

  7. #7
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    Originariamente inviato da a3g
    Il problema rimane sempre lo stesso pur avendo messo in pratica cio che hai detto tu. Ecco il nuovo codice modificato:

    codice:
    Set objRs = Conn.Execute("SELECT codice, valore from _eur")
    
    
     Do while NOT objRs.EOF
        old_valore = objRs("valore")
    
     response.write "vecchio valore = " & old_valore & "
    "
    
      objRs.Movenext
    Loop
    codice:
    For i = 3 To id.length-16
    
            
            nome_attributo = id(i*2).getAttribute("txtb_value")
    
    
            response.Write "nuovo valore="&nome_attributo&"
    "
    
    
    
        'set objRs1 = Conn.Execute("UPDATE _eur SET valore='"&nome_attributo&"'")
    
         set objRs1 = Conn.Execute("UPDATE _eur SET valore='"&nome_attributo&"'"&"where valore='"&old_valore&"'")
    
    
        Next

    inserisce sempre lo stesso valore.
    (Mi sono permessa si aggiungere il tag per rendere il codice più leggibile)

    Inserisce lo stesso valore perchè nel primo ciclo valorizzi sempre la stessa variabile.
    Richiamandola nel secondo ciclo aggiornerai con l'ultimo valore che le hai assegnato nel precedente
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    45
    Quando dici volorizzo la stessa variabile nel primo ciclo ti riferisci alla scrittura old_valore=objRs("valore") giusto? Forse dovrei fare con un array? Come qualche cosa del genere:

    Dim vettore(12)

    For i=0 to 11
    vettore(i)=objRs("valore")
    set objRs1 = Conn.Execute("UPDATE _eur SET valore='"&nome_attributo&"'"&"where vettore(i)='"&old_valore&"'")


    next

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.