ERRORE IN VB.NET IN SEGUITO A STAMPA CRYSTAL REPORT

giovedì 01 febbraio 2007 - 12.27

SSUPERPIPPO Profilo | Guru

Ho realizzato un applicativo in VB.NET che lavora in connessione con un Database SQLExpress. Finchè l'applicativo era in debug, quindi installato sul mio PC con un'istanza di SqlExpress installata in locale, tutto funzionava per il meglio.

Ora ho installato il mio applicativo su tre postazioni client e il database è gestito da SqlExpress che risulta installato su una macchina con Windows 2003 Server.

Il programma funziona come anche i report che puntano correttamente al database su Server. Il problema è che, una volta eseguita la stampa di un report su un pc locale, se tento di avviare un'altra stampa (sia che si tratti della stessa o di un'altro report), mi appare un errore irreversibile e vengo sbattuto fuori dal programma.
Questo succede su tutte le macchine.
C'è forse qualcosa che posso fare per ovviare a questo problema? Potrei aver sbagliato qualcosa io?

Questa è il codice che utilizzo per richiamare il report:

Dim Stampa As New ReportDocument
Dim logonInfo As New TableLogOnInfo
Dim table As Table

Stampa.Load(StrReport)

For Each table In Stampa.Database.Tables

' Imposta l'oggetto TableLogOnInfo.

logonInfo = table.LogOnInfo

' Imposta il server o il nome dell'origine dati, il nome del database,
' l'ID utente e la password.

logonInfo.ConnectionInfo.ServerName = SRVNAME
logonInfo.ConnectionInfo.DatabaseName = DBNAME
logonInfo.ConnectionInfo.UserID = "sa"
logonInfo.ConnectionInfo.Password = ""

' Applica le informazioni di connessione alla tabella.

table.ApplyLogOnInfo(logonInfo)

Next table

Me.RptAnteprima.ReportSource = Stampa
Me.RptAnteprima.SelectionFormula = StrFiltro
Me.RptAnteprima.ShowGroupTreeButton = False
Me.RptAnteprima.Show()

Se qualcuno avesse la soluzione ve ne sarei infinitamente grato.

Alessandro

freeteo Profilo | Guru

ciao,
puoi essere piu' preciso sul messaggio di errore che ti si presenta?
Potrebbe essere qualcosa legato al fatto che locca il file di report e quindi non riesce a caricare la prossima volta che lo ricarica...ma tral'altro ti succede con lo stessa stampa lanciata la 2da volta po anche se lanci un altro file ".rpt" ?

grazie magari con qualche dettaglio in piu' posso esserti utile
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

SSUPERPIPPO Profilo | Guru

Domani prendo nota del messaggio preciso di errore e te lo comunico.
Comunque l'errore si presenta anche aprendo altri file .rpt

Intanto grazie

Ciao

SSUPERPIPPO Profilo | Guru

L'errore si presenta così:

'Si è verificato un errore in GestioneNegozio.exe. L'applicazione verrà chiusa.
Potrebbe verificarsi una perdita dei dati a cui si stà lavorando'


Piuttosto generico, penso ti aiuti poco...
Comunque ancora una precisazione.
I PC collegati in rete sono 3. Solo due di questi presentano questo problema, l'altro stampa tranquillamente.
Ho inoltre riscontrato la stessa problematica installando il programma nella mia rete, con 2 client e un server.



Boh!? Sono disperato!

freeteo Profilo | Guru

effettivamente non saprei
il messaggio di errore è troppo generico, ti consiglio di fare un log quando ti succede un errore, cosi' magari dall'exception che si verifica si capisce qualcosa di piu'....

Altrimenti non saprei, se le proprieta' di connessione le hai verificate essere giuste, la configurazione, lunica cosa è avere un tracciato di log ancora piu' dettagliato per capire cosa genera l'errore, e con l'exception deve risultare, o meglio "dovrebbe" ...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

SSUPERPIPPO Profilo | Guru

Intanto grazie, appena ho info più precise te le mando.

Grazie 1000.

Ale

SSUPERPIPPO Profilo | Guru

Ciao,
non so se ti ricordi il mio problema.
Alla fine ho risolto. Ti spiego come.

In precedenza utilizzavo una connessione diretta del report al database SQLExpress reimpostando in runtime il nome del server, del database, username e password. Oltre ad essere estremamente lento nell'estrazione, mi generava quel errore inspiegabile!

Allora ho provato a creare un Dataset e a impostarlo come origine dati per il report anche modificandolo a runtime; ora tutto funziona a meraviglia, performance nettamente migliorate e nessun errore restituito dall'applicativo.

Grazie comunque, alla prossima.

freeteo Profilo | Guru

ciao,
ottimo, sono contento che tu abbia risolto.
Effettivamente forse ci sono problemi di prestazione e compatibilita' con sqlexpress 2005, dato che il pacchetto è uscito dopo e Crystal forse ha qualche servicePack magari che risolve il problema di lentezza.

Per quanto riguarda la tua scelta, va benissimo, caricando con ado.net i dati hai anche maggior controllo...
ciao.

Matteo Raumer
[MCAD .net]
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