Newsgroup: it.comp.lang.visual-basic
Titolo: Re: MySql e metodo .Edit

Riepilogo la situazione ..
  dopo vari tentativi ho notato che il metodo MySqlRS.Update  funziona 
perfettamente su una tabella di prova creata appositamente  "my_ado"
La tabella  Products fa parte del database OsCommerce 1.1  al link 
www.atsoft.it/DBoscommerce.zip
   una descrizione di tutto il database.
Ecco il codice incriminato funzionante con  "my_ado"
rs.Open "SELECT * FROM my_ado where id = 1 ", Conn, adOpenDynamic, 
adLockOptimistic
rs("Name") = "update 2"
rs("TXT") = "updated-row"
rs.Update
rs.Close
Tutto ok, modifiche effettuate.
Ecco il codice incriminato non funzionante con la tabella  Products
rs.Open "SELECT * FROM Products where products_id = 7850 ", Conn, 
adOpenDynamic, adLockOptimistic
rs("products_image") = "img"
rs.Update   -> Errore
Errore durante l'aggiornamento basato su query. Impossibile trovare la riga 
da aggiornare.
 ( Ovviamente il record esiste .. )
Ho fatto un'ulteriore prova valorizzando tutti i campi del record   ..
    Sqlrs("products_model") = Data1.Recordset("CODICE") & ""
    Sqlrs("products_last_modified") = date & " " & time
    Sqlrs("products_image") = "img/" & Trim(Data1.Recordset("IMMAGINE"))
    Sqlrs("products_price") = vF(Data1.Recordset("PREZZO_1"), 0)
    Sqlrs("products_date_added") = vF(Data1.Recordset("DATA"), Now())
    Sqlrs("products_date_available") = vF(Data1.Recordset("DATA"), Now()) 
' ` datetime default NULL,
    Sqlrs("products_weight") = 0 '  decimal(5,2) NOT NULL default '0.00',
    Sqlrs("products_status") = 1 ' ` tinyint(1) NOT NULL default '0',
    Sqlrs("products_tax_class_id") = 0 '  int(11) NOT NULL default '0',
    Sqlrs("products_ordered") = 0 ' vF(rs("QT_ORD_FOR"), 0) ' int(11) NOT 
NULL default '0',
    Sqlrs("products_quantity") = 0
    Sqlrs("manufacturers_id") = 1
    Sqlrs("vetrina") = 1  ' ` tinyint(1) NOT NULL default '0',
    Sqlrs.Update
    Sqlrs.Close
Errore durante l'aggiornamento basato su query. Impossibile trovare la riga 
da aggiornare.
questa è la struttura delal tabella:
# ############################
#
# Struttura della tabella `products`
#
CREATE TABLE `products` (
  `products_id` int(11) NOT NULL auto_increment,
  `products_quantity` int(4) NOT NULL default '0',
  `products_model` varchar(12) default NULL,
  `products_image` varchar(64) default NULL,
  `products_price` decimal(15,4) NOT NULL default '0.0000',
  `products_date_added` datetime NOT NULL default '0000-00-00 00:00:00',
  `products_last_modified` datetime default NULL,
  `products_date_available` datetime default NULL,
  `products_weight` decimal(5,2) NOT NULL default '0.00',
  `products_status` tinyint(1) NOT NULL default '0',
  `products_tax_class_id` int(11) NOT NULL default '0',
  `manufacturers_id` int(11) default NULL,
  `products_ordered` int(11) NOT NULL default '0',
  `vetrina` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`products_id`),
  KEY `idx_products_date_added` (`products_date_added`)
) TYPE=MyISAM AUTO_INCREMENT=29 ;
Grazie a tutti
Antonio





 ( Ovviamente il record esiste .. )
Secondo me non esiste =)
Aggiungi questa riga dopo l'apertura del recordset (id=7850).
rs.Open ...
Call Msgbox(IIf(rs.EOF, "Inesistente", "Esiste"))
E dicci cosa comunica la msgbox.
hth,
Lokar 

 Secondo me non esiste =)
Secondo me esiste. Se non esistesse, quando tenta di assegnare un valore
al campo darebbe errore per "nessun record corrente"
-- 
Salutoni
Sergio
That's me in the corner
That's me in the spotlight
Losing my religion
Trying to keep up with you
And I don't know if I can do it
Oh no I've said too much
I haven't said enough
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 al campo darebbe errore per "nessun record corrente"
Punto una banconota da tre euro su Melchiade :-P
Sospetto anzi che esista piu` di una riga con gli stessi campi indice.
Sarei curioso quante righe modificate ritornerebbe un'istruzione
di UPDATE diretta.
Sarei anche curioso di conoscere la struttura della tabella, invece di
continuare a girare sull'aria fritta :-P
-- 
ciao, hal

 continuare a girare sull'aria fritta :-P
come non detto... non avevo visto il post :-(
pane e cilicio per stasera :P
-- 
ciao, hal

   `products_id` int(11) NOT NULL auto_increment,
su google ho trovato un bel po' di articoli/messaggi riguardanti
bugs di vario genere sul tipo auto_increment.
non e` che, per caso, sono entrati piu` record con lo stesso
valore per il campo products_id?
una query cosi`:
SELECT products_id, quanti FROM (
SELECT products_id, count(products_id) quanti
FROM products
GROUP BY products_id
) a
WHERE quanti > 1
ORDER BY products_id
restituisce qualche riga?
in teoria non dovrebbe, ma...
-- 
ciao, hal

Prova a guardare qui:
http://tinyurl.com/nj9s9
Magari trovi qualche suggerimento o prove che puoi fare (il
suggerimento migliore comunque e' usare le INSERT e le UPDATE)

Il cursore che utilizzi e' client-side o server-side?
Prova con adUseClient