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

    Problema con update record

    Ciao a tutti,

    Non riesco a spiegarmi come mai con un update record talvolta mi vengono updatati più di un record.

    Il codice che ho composto è il seguente:

    codice:
    strQuery = "SELECT messaggio " & _
    	"FROM tabmessaggi " & _
    	"WHERE msg_id = " & lngMessaggioID & ";"
    
    	rsMessaggio.CursorType = 2
    	rsMessaggio.LockType = 3
    	rsMessaggio.Open strQuery, connessione
    
    	If Not rsMessaggio.EOF Then
    
    		rsMessaggio.Fields("messaggio") = strMessaggio
    		rsMessaggio.Update
    
    	End If
    
    	rsMessaggio.Close
    È strano perchè mi vengono updatati allo stesso modo circa 4 messaggi. Nella query ho provato anche ad inserire il LIMIT 1 ma il discorso non cambia.

    È davvero inspiegabile,

    Qualcuno mi sa suggerire qualcosa ?

    P.S. Il database è mysql
    SGr33n

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    codice:
    'apri connessione
    strMessaggio = replace(strMessaggio,"'","''")
    strQuery = "UPDATE tabmessaggi  SET messaggio = '" & strMessaggio &"' WHERE msg_id = " & lngMessaggioID
    connessione.Execute(strQuery)
    connessione.Close
    set connessione = nothing
    Roby

  3. #3
    Così sicuro non ci sarebbero problemi, ma preferirei farlo nell'altro metodo.
    SGr33n

  4. #4
    Mysql non digerisce ADO (forse la verisone 5 sì).
    Comunque sempre meglio usare stringe SQL.

  5. #5
    Il problema è che uso ADO in molti casi... soprattutto quando i campi da modificare sono parecchi e non ho mai avuto problemi. Più che per risolvere questo caso specifico mi interessava sapere il motivo proprio per curiosità... la sintassi è corretta, l'ho usato in altri casi molto simili e non ho avuto questo problema, il record individuato è sicuramente 1 solo in quanto identificato dalla chiave univoca, e pure se non fosse non ho rinchiuso l'update in nessun ciclo.

    È davvero strano.
    SGr33n

  6. #6
    Ma il ; (punto e virgola) alla fine della query di selezione a cosa serve?
    Io farei così:

    codice:
    strQuery = "SELECT messaggio FROM tabmessaggi WHERE msg_id = " & lngMessaggioID
    Comunque torno a dire, lascia perdere ADO e passa a SQL puro.


  7. #7
    Il punto e virgola delimita la fine della query... è MySQL.

    Nel caso specifico cmq mi serviva più ado perchè in realtà solo un utente può modificare il messaggio e così inserivo nella query anche l'id dell'utente, senza dover utilizzare 2 query prima per vedere se l'utente poteva modificare il messaggio e poi per modificarlo.

    Di solito negli altri casi uso anche io sempre SQL.
    SGr33n

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,563
    Originariamente inviato da SGr33n
    Il punto e virgola delimita la fine della query... è MySQL.

    Nel caso specifico cmq mi serviva più ado perchè in realtà solo un utente può modificare il messaggio e così inserivo nella query anche l'id dell'utente, senza dover utilizzare 2 query prima per vedere se l'utente poteva modificare il messaggio e poi per modificarlo.

    Di solito negli altri casi uso anche io sempre SQL.
    Non bastava mettere l'utente nella WHERE???

    Roby

  9. #9
    Si... ma poi devo fare un altro casino per sapere se l'update è stato effettuato oppure no :P
    Anche se il metodo c'è.
    SGr33n

  10. #10
    Ecco ce l'ho fatta

    Bastava selezionare anche il campo univoco... per quale motivo ? boh... ho semplicemente confrontato una query che funzionava ed una che invece non funzionava e l'ho capito. Bah!
    SGr33n

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 © 2024 vBulletin Solutions, Inc. All rights reserved.