17 messaggi dal 16 febbraio 2005
Ciao sto tentando per la prima volta una connessione a mysql...
dove sbaglio?
Ecco il codice:

using (OleDbConnection conn = new OleDbConnection( "Provider=MySQLProv; Data Source=nomeserver; User Id=myuserid; Password=mypassword;"))
{
conn.Open();
conn.Close();
}

L'errore che mi da eseguendo la pagina è:

System.InvalidOperationException: The 'MySQLProv' provider is not registered on the local machine.

Cosa vuol dire? Come posso risolverlo?
176 messaggi dal 04 giugno 2007
Contributi | Blog
The 'MySQLProv' provider is not registered on the local machine

Ovvero: sicuro di avere installato il MySQL OleDB provider sul server dove gira quel codice?

A margine, perché usi OleDB invece del managed provider? Perdi in performance e affidabilità...

Saluti

--Alessandro
17 messaggi dal 16 febbraio 2005
Scusami che cosa intendi per il managed provider? intendi MySQL Connector/NET?
Io pensavo che fosse più performante OleDB ecco perchè lo usavo, ma se mi dici questo certamente devo cambiare il tipo di connessione...
17 messaggi dal 16 febbraio 2005
Qui:
http://www.aspitalia.com/servizi/connectionstring-MYSQL.aspx
avevo letto che oledb dovrebbe essere la più performante..
176 messaggi dal 04 giugno 2007
Contributi | Blog
Sì, intendo il MySQL connector .NET, questo:
http://www.mysql.com/products/connector/net/

Riguardo i tuoi dubbi: OleDB usato in managed code richiede sempre il marshalling di tutti i dati da nativo a managed. Questa è un'operazione parecchio dispendiosa, sia in termini di memoria necessaria (pinni i buffer due volte) sia in termini di costo computazionale (ogni transizione di esecuzione ti costa qualche centinaio di cicli di clock).

Anche se il provider managed fosse fatto con i piedi (e non è proprio il caso nella fattispecie del provider per MySQL che è anzi molto ben fatto) sarebbe almeno qualche decina di % piu' performante.

Per darti un'idea, avere ridotto del 60% le transizioni da managed a native code nell'implementazione del threadpool del CLR in .NET 3.5 fa guadagnare dal 20% al 50% in velocita di switch di ogni applicazione.

Se leggi con attenzione l'articolo che citi, dice di usare OleDB invece di ODBC. Dà per scontato che se usi .NET il managed provider è la scelta naturale.

Considerazioni di performance a parte, il managed provider ti consente di fare operazioni più raffinate, come per esempio il matching dei parametri per nome invece che per ordine di apparizione, e gestisce il typing e le eccezioni in modo decisamente più user-friendly.

Ovunque ci sia un provider managed a disposizione dovrebbe essere sempre la prima scelta.

Saluti

--Alessandro
Modificato da AlessC-MSFT il 22 aprile 2008 15.44 -
17 messaggi dal 16 febbraio 2005
Ti ringrazio moltissimo! Sei veramente stato molto gentile e preciso.
Ciao
Cristina

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.