Crystal Report 2008 e VMWare

venerdì 18 dicembre 2009 - 12.00

crystal Profilo | Newbie

Ciao a tutti.

Ho un'applicazione (VB.NET) che genera PDF o preview di rpt.
Quest'applicazione, tra le altre cose, esegue delle operazioni preliminari sul report, prima di ottenere l'output desiderato.

Gli rpt sono RPT CR 2008 (migrati da CR 8.5).
Il database è (per ora) IBM DB2 8.x mappato via ODBC.
Gli ambienti di test sono con sistemi XP/Windows 2003 Server SP2, con .NET Fw 3.5.
I sistemi usati di cui sopra non sono dotati di installazione Crystal Reports 2008, ma bensì del Runtime di Crystal reports 2008, SP2.

Tutto va bene, tranne nel caso in cui faccio girare l'applicazione su una macchina virtuale VM WARE con le caratteristiche di sistema di cui sopra (il s.o. è Windows 2003 Server). Ho l'errore che segue:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

La vecchia applicazione che usava VB6 e l'engine per gli RPT 8.5 non ha mai avuto problemi in tal senso.
Qui, invece, mi sembra di capire che succeda qualche cosa a livello di logon, quando gli 'forzo' la setLocation...
Questo è l'estratto di codice della mia logon:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Qualche idea? consiglio? il codice che ho usato è sbagliato e mi è andata di fortuna fino adesso? etc.?

Grazie a tutti, comunque.

freeteo Profilo | Guru

Ciao,perdona il ritardo nella risposta.
Allora, l'errore se non ho capito male è di logon, quindi probabilmente la virtual machine non accede a quel database (magari non è in rete correttamente, o l'utente con cui gira l'applicazione dentro di lei non ha i diritti sufficienti) il fatto però che sia dentro alla virtual machine non fa differenza alcuna da una macchina fisica, la differenza la fa per Windows in sè, ma se quello funziona, le applicazioni parlano con lui e quindi per lo ro assolutamente non ci sono differenze.

Hai verificato in debug magari, se appunto non sia un problema di "location"? mi viene in mente questo vecchio thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=5303

Ciao.

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

crystal Profilo | Newbie

Grazie freeteo.

Non ho risolto il problema, purtroppo. Confesso che non sto capendo molto in questo CR.

Comunque ti aggiorno:
- sulla macchina virtuale ho installato il Runtime distribuibile di CR 2008 (SP2)
- sulla macchina di sviluppo ho, oltre a VS, anche CR 2008 Designer
- su altre macchine (non virtuali) di test non ho il CR Designer, ma il Runtime

- sulle macchine non virtuali mi funziona
- sulle macchine virtuali non mi funziona (stesso problema già segnalato)

- Nel pezzo di codice (mex iniziale) in cui ho fatto il logon delle tabelle ho aggiunto degli output su console in modo da vedere in esecuzione il nome della tabella e la location.
Il risultato lo schematizzo nel seguente esempio:

Su un RPT in designer mi connetto alla fonte dati DB2, via ODBC, chiamata DB01 e costruisco il report in modo da vedere alcuni campi di una tabella di DB01, MIOSCHEMA.T1

Quando eseguo il mio programma, sia su una macchina non VMWARE che su una macchina VMWARE, il nome della tabella è sempre: T1; cioè privo di schema. Tuttavia sulle non VMWARE funziona.

Speriamo di scoprire che sia solamente la solita cavolata, perché al momento non saprei che cosa fare.

Grazie ancora e ciao.

freeteo Profilo | Guru

Ciao,
mi viene da pensare che non sia un problema di Crystal, ma del driver di accesso ad IBM, perchè se ho capito bene, di fatto usi ODBC in Crystal quindi l'accesso è demandato ad un provider differente, appunto quello di IBM.

Sicuro che non serva un runtime, tipo un "Client Access" di IBM da installare sulla vm?

Ciao.

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

crystal Profilo | Newbie

Ok Freeteo, ho abbandonato per un po' di tempo il problema, ma ultimamente questi è tornato alla ribalta e non ho avuto scampo.

Avevi ragione: il povero CR 2008 questa volta non c'entra: è "colpa" (come al solito!!!) del DB2!!! (Cioè di quell'umano che l'ha configurato sulle VM Ware che uso...).

Veniamo al dunque, per completare (e terminare) questo 3D: assolti CR e VMWare, l'indagine si è spostata sulla configurazione dell'ODBC per DB2, in particolar modo sul file db2cli.ini: tra le altre cose "sporche" che mi son trovato (cose troppo peculiari all'applicazione che deve interagire col mio tool e che in questo contesto non portano a nulla di esplicativo) ho trovato che "qualcuno" mi setta una chiave schemalist con valore di schema non comprendente lo schema che uso nelle mie tabelle (dei miei report). Risultato: il mio programma fa un accesso regolare via ODBC, ma (grazie a schemalist), non trova lo schema della tabella mappata nel report e, quindi, si genera un errore di cui ho ampiamente parlato nei mex sopra. La fortuna è che, nel mio contesto, quello schemalist è un "morto" derivante da vecchie installazioni e, quindi, l'ho potuto eliminare.

Tanto casino per così poco (un classico dell'informatica... posso dire però che sono diventato un esperto DB2! :) ). La cosa che mi ha portato fuori strada è stata che su alcune macchine non avevo questo problema e su altre (VM, in particolare) sì: è dipeso dall'installazione più o meno aggiornata dell'applicativo che mi sono ritrovato (e di questo parametro che fino ad ora non aveva mai creato problemi).

Concludendo questo thread, per essere utile, andrebbe riscritto e sicuramente intitolato con una frase del tipo "Crystal Reports 2008 e DB2 via ODBC: problemi di schema".

Ciao.

P.S.
Tengo aperto ancora un po' il 3D, nel caso qualcuno avesse qualche cosa da aggiungere o dettagliare a riguardo. Poi chiudo.

freeteo Profilo | Guru

Ok, grazie della spiegazione.
Potrà sicuramente tornare utile a chi dovesse passare di qui magari cercando sui motori di ricerca...

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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5