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

Sono disperato,  mi funziona addnew ma il metodo .update viene semplicemente 
ignorato !
    Dim SqlConn As New ADODB.Connection
    Dim Sqlrs As New ADODB.Recordset
SqlConn.Open  "Provider=MSDASQL; DRIVER={MySQL ODBC 3.51 Driver};; 
SERVER=.........; PORT=3306; DATABASE=..........;USER=.............; 
PASSWORD=.....; OPTION=3;"
    Slrs.CursorLocation = adUseServer
    Sqlrs.Open "SELECT * FROM products where products_codice = '" & 
Data1.Recordset("codice") & "'", SqlConn, adOpenKeyset, adLockOptimistic
    If Sqlrs.EOF Then
       Sqlrs.AddNew
       Sqlrs("products_codice") = Data1.Recordset("codice")
       Mess "& Aggiunto "
    Else
       Mess "& Modificato "
    End If
    ....
     varie assegnazionie
    ....
     Sqlrs.Update
     Sqlrs.Close
     SqlConn.Close
in caso di Modifica l'operazuione non ha alcun effetto e non viene generato 
nessun errore !!!!
Grazie mille

 PASSWORD=.....; OPTION=3;"
Prova usando una connection string per OLEDB e non per ODBC.
Ciao 

 ha scritto nel messaggio 
news:44109f8c$0$29736$4faf...@reader2.news.tin.it...


 ha scritto nel messaggio 
news:44109642$0$18281$4faf...@reader1.news.tin.it...


 Prova cosě:


 ha scritto nel messaggio 
news:44113fac$0$29724$4faf...@reader2.news.tin.it...


 Non trovo la stringa oledb !!!!!!
Se dici che provider OleDb hai installato, forse qualcuno può fornirti 
la stringa (a parte che con il provider ho sempre visto allegato un 
progetto di esempio con la relativa stringa di connessione).
Ciao
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

 stringa
Quando non si sa la stringa un metodo banale è creare un file nuovo vuoto 
(tasto destro, Nuovo -> Documento di testo) e rinominarlo come .udl, doppio 
click e seguire il wizard.
Poi basta aprirlo con notepad (rinominarlo in .txt e doppioclick).
Ciao
-- 
Free .Net Reporting Tool - 
http://www.neodatatype.net
 

Tra i provider non vedo oledb per MySql , forse si deve installare , ma su 
www.mysql.com
 si parla solo di ODBC , che ho già installato se no manco 
addnew mi riusciva !..
sono ancora in panne , eppure qualche anno fa ci ero riuscito !
Grazie cmq per l'aiuto 

Antonio T. ha spiegato il 10/03/2006 :

E' la solita menata di MySql.
Non c'è supporto, non ci sono NG decenti, non c'è una vera 
documentazione.
Il prodotto sarebbe anche bello, ancorchè un po' caro per utilizzi 
Small Business, ma noi sviluppatori dobbiamo fare i conti con la realtà 
delle cose.
Immagina se tu avessi avuto bisogno di una connectionstring per 
Sql-Server o Oracle.
Avresti già risolto da quel pezzo.


 Avresti già risolto da quel pezzo.
Alberto, scusami ma non capisco la tua avversione per MySQL.
Sul sito di MySQL ci sono esempi di connessione persino per VB.
E su internet... addirittura per ASP.
Anche la tua domanda su quale OleDb ha installato e' strana,
visto che MySQL usa ODBC (MyODBC), quindi l'unico provider
possibile e' OleDb for ODBC.
Ci sono zilioni di siti su google che riportano la stringa di
connessione, che e':
ConnectionString = _
   "DRIVER={MySQL ODBC 3.51 Driver}" & _
   ";SERVER=" & HostName & _
   ";DATABASE=" & DBName & _
   ";UID=" & UserName & _
   ";PWD=" & Password & _
   ";OPTION=43" 'Opzioni a seconda di quel che serve
Sinceramente, vorrei capire come mai provi questa forte
avversione per questo DB =)
Lokar 

 avversione per questo DB =)
Non è avversione, figurati.
Solo voglia di fare chiarezza.
Mi è accaduto di perdere un paio di contratti perchè il mio software si 
basava su MSDE, e quello del concorrente su MySql.
Al che, faccio osservare che nel confronto di prezzi devono anche 
computare i 500E/anno di licenza di MySql, altrimenti il confronto è 
scorretto. E questi mi rispondono che 'MySql è gratuito'.
Beh, faccio io, ok, allora mi fate avere i sorgenti dell'applicativo, 
che voglio studiarmeli.
Mai ricevuti, ma cosa faccio, gli mando la finanza?
Figurati, lascio perdere.
Però ammetti che questa balla che gira di MySql gratuito, perturba il 
mercato di chi, come me, è particolarmente ligio alle licenze, e ne 
sopporta i costi.


 sopporta i costi.
C'e' anche chi paga, pero'. E se i costi li sostiene
il cliente, ed io come sviluppatore interno+web
mi trovo facilitato nell'utilizzare MySQL,
puoi biasimarmi? =)
Happy Coding =)
Lokar
(*) Tanto per tenerti aggiornato, a proposito di
VBMySQLDirect, ho scoperto che ha un "selvaggio" memory
leak sull'oggetto rs, il quale anche chiuso e rilasciato
correttamente rimane "appeso" in memoria, ANCHE DOPO LA
CHIUSURA DI VB.
Son dovuto passare a MyODBC, e almeno in questo VBMySQLDirect
e' stato onesto: con un trova-sostituisci ed un piccolo
aggiustamento nella stringa di conenssione, non mi sono accorto
neanche del passaggio. A livello di prestazioni non posso dire
ancora nulla, pero', visto che al momento il db del cliente e'
poco popolato. Ma per gli usi previsti, non penso avra' mai
problemi di sorta.
Tanto perche' ormai stiamo divagando, ho dato un'occhiata ai
sorgenti di VBMySQLDirect. E' talmente semplice da essere
disarmante! Probabilmente se avro' un po' di tempo mi dedichero'
io alla scrittura di un Provider diretto sul DB, traendo spunto
da quello. 

RAGAZZI , ME LO FATE FARE UN   MySqlRs.UPDATE      !!!!!!!!
Antonio 

 ha scritto nel messaggio 
news:441193f3$0$36933$4faf...@reader3.news.tin.it...


 rs.Close
Non so aiutarti a rilevare l'errore (l'Update viene ignorato a quanto ho capito). Ma posso suggerirti una strada alternativa =)
Call rs.Open( _
   "UPDATE `products`" & _
   " SET `products_image`=`img/CIC036.JPG`" & _
   " WHERE `products_id`=2085")
hth,
Lokar 

   " WHERE `products_id`=2085")
non mi rimane che questa strada   ... ma è curioso .. il seguente codice 
funziona (stesso server mysql, tabella diversa)
rs.Open "SELECT * FROM my_ado  where id = 1 "
rs!Name = "img/CICO36.JPG"
rs.Update
rs.Close
e la tabella viene effettivamente  aggiornata, ho controllato le tabelle e 
hanno entrambe una primary key.
L'errore che adesso ricevo è :
Errore durante l'aggiornamento basato su query. Impossibile trovare la riga 
da aggiornare.
non so ,  ho anche lanciato test table e repair table, ricreato la primary 
key , niente !
non è possibile !!!!!!!!!

 key , niente !
nella mia esperienza questo errore è proprio quello che si riceve quando
manca la primary key, ma se tu dici che c'è la cosa è effettivamente strana
-- 
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

Adesso vorrei sentire chi difende MySql !   :)

Ho usato diverse volte MySQL e non ho mai avuto i problemi che lamenti
Ci posti un DESCRIBE di questa fantomatica tabella "products" cosi'
possiamo vedere che campi contiene?

 Avresti già risolto da quel pezzo.
http://www.connectionstrings.com/
Tutte le stringhe che vuoi.


Se vuoi vivere tranquillo e lavorare serenamente con MySQL su Visual
Basic, ti consiglio di studiarti bene l'SQL e inviare direttamente
istruzioni SQL senza utilizzare metodi di ADO (addnew, update, ...)
tramite .execute per esempio.

 Tutte le stringhe che vuoi.
Come no.
Infatti quella per OleDb che usavo io manca.
E chi ha bisogno viene sul NG di VB.


 tramite .execute per esempio.
Questa e` una regola valida, non solo con MySql. I vari oggettini che
Microsoft si inventa ogni due per tre hanno sempre un baco nuovo.
Usando direttamente i comandi SQL ci si leva da tutti i problemi.
-- 
ciao, hal

 Infatti quella per OleDb che usavo io manca.
Hai provato ad usare OleDb (.NET) ?
Ciao,
    Fabrizio

 Usando direttamente i comandi SQL ci si leva da tutti i problemi.
Quoto e concordo. E' mia pratica comune.

 Infatti quella per OleDb che usavo io manca.
Comunque, per esperienza personale,  ODBC è molto più stabile di
OLEDB.

 Hai provato ad usare OleDb (.NET) ?
Non è quella.
Ricordo una cosa del tipo Provider=MyOleDb3 o similari.


Sembra che Negus abbia detto :

ODBC è sicuramente un filino meno performante, ma non sarebbe un 
problema.
Il vero problema è che le connessioni ODBC o vengono create nella 
macchina/utente prima dell'avvio dell'applicazione (e io che faccio 
anche app distribuibili via web, mica posso chiedere all'omino di fare 
una DSN), oppure le fai a runtime, ma non è detto che l'utente possa 
crearle.
Con OleDb il problema non si pone.


 ha scritto nel messaggio 
news:1142238584....@v46g2000cwv.googlegroups.com...


 Ricordo una cosa del tipo Provider=MyOleDb3 o similari.
Comunque sia, è più stabile l'ODBC dell'OLEDB, almeno dai test che ho
svolto.
Ciao,
     Fabrizio

 crearle.
Sempre usato la seconda soluzione, ovvero a runtime.
Ci sono controindicazioni a farle runtime?
In finale si tratta di una stringa di connessione non troppo diversa da
quella OLE.
Ciao,
    Fabrizio.

 MsSql !!!!
Non è l'ultima spiaggia. Dovrebbe essere pratica comune nella
programmazione con ADO.