Crystal Reports e MySQL

giovedì 05 gennaio 2012 - 13.45
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows 7  |  Visual Studio 2008  |  MySQL 5.5  |  Office 2003  |  Firefox  |  Crystal Reports 2008

Veronica80 Profilo | Newbie

Lo so che in giro è pieno di info su come collegare CR a MySQL ma non son riuscita nell'intento seguendole!

Il mio problema è la fase di design (visto che a runtime lancio il report associandolo a un dataset creato da Vb.NET). Non posso disegnare il mio report se non riesco a connettere CR al Database MySQL per carpirne la struttura! Qualcuno ha qualche soluzione?


EDIT: Allora il problema per il designer l'ho risolto con JDBC inserendo l'url del file Jar che ho scaricato nel file di configurazione di C.Reports come ho letto in questo articolo: http://www.eakes.org/80/connecting-to-mysql-with-crystal-reports-xi/

Quando disegno il reports va tutto benissimo! Mi da i campi, l'anteprima funziona benissimo ecc ecc

Il problema lo trovo quando vado poi a usare il report nella mia applicazione vb.net :(

Io di norma ho sempre creato un Dataset, caricato il report con un load e poi assegnato come dataSource del report il dataset...in questo modo pensavo non contasse il tipo di database ecc visto che io sto passando il dataset... in reatà però coi report che ho citato sopra (connessi con JDBC) mi da un errore quando carico il report.... :°

L'errore è questo:

"Impossibile caricare le informazioni del database.
Dettagli: Impossibile caricare la DLL 'crdb_jdbc.dll' di database. Errore nel file C:\Users\Veronica\AppData\Local\Temp\PrintOreAz{<qui ci son vari numeri}.rpt
Impossibile caricare le informazioni del database"

Ora quello che è strano è che appunto io passo un dataset come datasource :/ che c'entra la connessione jdbc?
Cioè se io facessi il report con una tabella di ACCESS connessa al CR e poi usassi quel report passando un dataset con la medesima struttura ma ottenuto da MySQL funziona tutto!

HELP vi prego è davvero URGENTISSIMO!

freeteo Profilo | Guru

Ciao Veronica80,
perdona il ritardo nella risposta.



>EDIT: Allora il problema per il designer l'ho risolto con JDBC
>inserendo l'url del file Jar che ho scaricato nel file di configurazione
>di C.Reports come ho letto in questo articolo: http://www.eakes.org/80/connecting-to-mysql-with-crystal-reports-xi/
Jdbc...per forza? non è possibile andare su Mysql tramite ODBC?


>Quando disegno il reports va tutto benissimo! Mi da i campi,
>l'anteprima funziona benissimo ecc ecc
certo, perchè hai installato il driver di connessione a mysql corretto, quindi per Crystal è trasparente la cosa


>Il problema lo trovo quando vado poi a usare il report nella
>mia applicazione vb.net :(
nello stesso tuo pc, o quando la distribuisci?
Se succede anche nel tuo pc, forse JDBC non lo utilizzi...potresti invece installare un driver ODBC per Mysql che è "più standard"



>"Impossibile caricare le informazioni del database.
>Dettagli: Impossibile caricare la DLL 'crdb_jdbc.dll' di database.
>Errore nel file C:\Users\Veronica\AppData\Local\Temp\PrintOreAz{<qui
>ci son vari numeri}.rpt
>Impossibile caricare le informazioni del database"
ecco, appunto non viene agganciato il driver corretto, io ti consiglio di provare con ODBC per mysql e vedere se cambia qualcosa.



>Ora quello che è strano è che appunto io passo un dataset come
>datasource :/ che c'entra la connessione jdbc?
>Cioè se io facessi il report con una tabella di ACCESS connessa
>al CR e poi usassi quel report passando un dataset con la medesima
>struttura ma ottenuto da MySQL funziona tutto!
sì vero, infatti io uso questa tecnica molto spesso proprio per evitarmi problemi


Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Veronica80 Profilo | Newbie

Ciao Teo!
Con OCDB non mi da Mysql come tipologia di database nella lista.
Alla fine ho risolto così:

Ho creato un piccolo exe con vb.net dove mi collego al database e genero un file XML contentente la struttura della query e anche i dati in essa contenuti (così posso vedere gli esempi in anteprima).
Poi carico l'xml con la connesisone ADO in CR.

E' un po macchinoso, specialmente per le anteprime e se faccio modifiche alla query (perchè devo rifare tutto il procedimento per aggiornare il report) però alla fine mi son salvata!

Se con OCDB è più rapida e funzionale però mi interesserebbe capire come fare! Mi dai qualche info in più o link a qualche guida?

Grazie!

freeteo Profilo | Guru

Ciao Veronica,
ODBC è un pacchetto che viene installato in windows ed è "generico" come tipologia di accesso, infatti si preoccupa windows stesso a fare poi la chiamata al driver corretto di ogni relativo database.

Quindi per poterlo utilizzare, ti basta installare il driver ODBC per MySql, il che è fornito ufficiale da MySql stesso: http://dev.mysql.com/downloads/connector/odbc/

installato quello sul pc, puoi usarlo per le tue connessioni in fase di design del report...quando lo distribuisci secondo me non ti da errore perchè il driver odbc di crystal c'è sempre nel runtime...poi tu gli passi il dataset da codice quindi di fatto lui lo ignora, ma il problema ti nasce se agganci al report una "modalità di accesso" (chiamiamola così, perchè dovrei dire "driver" anche questa volta, ma poi il concetto si ingarbuglia...) che poi non trova nel pc dove è in esecuzione...

*ps: preciso che non ho esperienze dirette con crystal + mysql quindi vado a ragionamento...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Veronica80 Profilo | Newbie

Guarda...di fatto con jdbc avevo fatto lo stesso ragionamento! Una volta che il report ha la struttura del dataset se io poi glielo passo via codice con vb.net dovrebbe andare...invece mi da quell'errore!
(Ps: me lo da anche sul mio pc in fase di debug)

Ora provo con odbc speriamo bene! Se no continuo a crearmi l'xml per ado :P

freeteo Profilo | Guru

>Guarda...di fatto con jdbc avevo fatto lo stesso ragionamento!
>Una volta che il report ha la struttura del dataset se io poi
>glielo passo via codice con vb.net dovrebbe andare...invece mi
>da quell'errore!
infatti...il concetto è giusto, ma il driver da usare che si scrive Crystal dentro al file rpt, essendo uno di non standard (nel senso che non è dato già con l'installazione del runtime) allora da errore...penso possa essere quello il problema...


Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5