CHIUDERE DATABASE DOPO CARIC. REPORT

martedì 18 ottobre 2005 - 01.50

NIKITA Profilo | Newbie

CIAO RAGAZZI,
HO BISOGNO DI UNA MANO...SPERIAMO DI RICEVERE ALMENO UN DITO!!HIHI

LAVORO CON .NET DEVOLEPERS 2003 WINDOWS FORMS - CRYSTAL REPORTS XI - IL DATABASE E' IN ACCESS 2003.
QUANDO LANCIO LA STAMPA DI UN REPORT QUESTO MI VIENE VISUALIZZATO CORRETTAMENTE MA IL MIO PROBLEMA E' CHIUDERE LA CONNESSIONE AL DATABASE...
POTREI ESEGUIRE IL COMANDO REPORTDOCUMENT.CLOSE SUBITO DOPO IL CARICAMENTO DEL REPORT
MA SE FACCIO QUESTO ED HO + PAGINE DA VISUALIZZARE MI FA VEDERE SOLO LA PRIMA E NON MI FA SPOSTARE FRA LE VARIE PAGINE...E NON MI FA AGGIORNARE CON IL COMANDO REFRESH IN QUANTO HO PERSO LA CONNESSIONE AL DATABASE (PENSO.....)
SE NON LANCIO IL REPORTDOCUMENT.CLOSE IL DATABASE MI RIMANE APERTO FINO ALLA CHIUSURA DEL REPORT MA MI FA RALLENTARE TREMENDAMENTE IL PROGRAMMA...(PERCHE'????UFFA)

QUALCHE AIUTO??
GRAZIE MILLE IN ANTICIPO

freeteo Profilo | Guru

ciao,
Credo proprio che quello che vuoi fare tu non sia possibile inquanto se fosse cosi' il report si dovrebbe aprire e chiudere la connessione al database ogni pagina cosa che di solito è abbastanza costosa in termini di risorse e prestazioni...
Ad ogni modo puoi fare tu 1a query da codice e passare poi il set di dati al report senza che vada lui ad impegnarti il db e quindi rallentarti il programma:
- usi ado,net con provider OleDB per riempire 1o piu datatable
- poi li passi al report con il metodo "setREportSource" dell'oggetto report

Pero' rimango ancora 1po perplesso sul capire cosa ti rallenta 1a applicazione se la connessione del report e tu da codice ne hai 1altra come fa ad essere lento, il database è progettato proprio per queste operazioni :-)
Se hai troppi dati o dati con tipi pesanti (come immagini) allora forse dovresti considerare il fatto di cambiare db e passare a qualcosa di piu serio tipo sqlexpress o mysql...

ps: Perche scrivi in maiuscolo?sai che non si usa, ovvero il "maiuscolo" è come urlare??? penso che ti sia rimasto bloccato il "caps-lock" per qualche altro programma e percio' ti consiglio di toglierlo quando scrivi sui forum o newsgroup :-)

ciao

Matteo Raumer
.net addicted :-)
http://blogs.dotnethell.it/freeteo

NIKITA Profilo | Newbie

Scusatemi per il maiuscolo....

Quello che tu mi hai scritto(riscrivo):
Ad ogni modo puoi fare tu 1a query da codice e passare poi il set di dati al report senza che vada lui ad impegnarti il db e quindi rallentarti il programma:
- usi ado,net con provider OleDB per riempire 1o piu datatable
- poi li passi al report con il metodo "setREportSource" dell'oggetto report

se devo cambiare in runtime la conessione e settarla a tutte le tabelle del report con Applylogonifo...
poi devo usare il setREportSource?
poi la connessione al db rimane chiusa?

Grazie spero in una risposta perchè sono disperata...

Nicla

freeteo Profilo | Guru

ciao,
se usi le logoninfo per il report lui usa quelle credenziali per accedere dove gli specifichi, il "setreportsource" è per il reportviewer ovvero il visualizzatore,percio' lo puoi ridare oppure dargli semplicamente il "refreshreport" in modo che lui vada a visualizzare il report nuovo (con le logoinfo cambiate).
Per quanto riguarda la connessione penso che finche il report è attivo il db è aperto e cosi' è senza soluzione (almeno penso) inquanto il report per visualizzare le pagine usa sempre la stessa connessione, solo che ribadisco il problema a mio avviso non è in questo ma nel db che è progettato per essere aperto da piu persone contemporaneamente (è il suo lavoro :-) percio' in caso va cambiato o progettato diversamente magari con indici o togliendo campi ole etc...

ciao

Matteo Raumer
.net addicted :-)
http://blogs.dotnethell.it/freeteo

NIKITA Profilo | Newbie


ciao
Non usa sempre la stessa connessione penso che ne apra un'altra di tipo diverso altrimento non mi spiego come mai il programma va benissimo in rete ma si blocca(rallenta) solo se lancio una stampa (rallenta solo tutti gli altri client(anche se ho 2 client in croce!!!))

non è che non va... ci impiega solo 3 volte di+ a caricare una form se ho dei connection.open o connection.close o con il Fill

Che problema posso avere nel db...??
Non ho campi ole ed ho tutti gli indici...inoltre rallenta l'applicazione anche se nel report ho solo una tabella con 2 campettini!!)...
Penso anch'io che sia un problema di connessione al db...ma cosa???????
mi viene da piangere....

Aspetto vs aiuti..
Nicla "la disperata"

freeteo Profilo | Guru

ciao,
che stringa di connessione hai usato? prova ad usare 1a di quelle che trovi su http://www.connectionstrings.com che sono "super standard" che magari non vai a fare qualche lock sul file...
ciao

Matteo Raumer
.net addicted :-)
http://blogs.dotnethell.it/freeteo

NIKITA Profilo | Newbie

Niente da fare...non capisco proprio cosa posa essere il problema!!!
avete altre soluzioni????


Grazi Nicla

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