CR XI: modificare Comando SQL a runtime

giovedì 28 giugno 2007 - 11.06

ale.orma Profilo | Junior Member

Ciao, il problema di oggi è dato dalla seguente situazione:
con CR XI ho un report la cui origine dei dati è ricavata tramite un Comando SQL (Esperto Database-->Aggiungi comando).
Il testo di questo comando è la mia query Sql fatta su un DB Sql2005.
Ho dovuto fare cosi perchè se, come facevo con CR 8.5, aggiungo le tabelle e i collegamenti, poi non posso più modificare manualmente la query sql che CR genera automaticamente perchè la finestra Database-->Mostra Query SQL è in sola lettura.
Col comando SQL in pratica crea una tabella virtuale che rappresenta i risultati dell'elaborazione del comando stesso. Nell'anteprima del report tutto funziona bene, il problema nasce quando da VB voglio modificare la query con l'istruzione:
myRep.SQLQueryString=strSQL.
Questa istruzione non ha alcun effetto e la query originale del report non varia, mentre per i report in cui non utilizzo Comandi SQL ma ho la lista delle tabelle con i collegamenti con la stessa istruzione posso modificare la query a mio piacimento, applicando alla clausola WHERE o ORDER BY i campi ed i valori che voglio.

Qualcuno sa dirmi come modificare il testo di un Comando SQL a runtime?
AIUTOOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!

ale.orma Profilo | Junior Member

Da quanto sono riuscito a trovare sul sito BusinessObjetcts non è possibile modificare la query di un Comando SQL a runtime.
La selezione dei record l'ho impostata in questo modo (ad. esempio):

myRep.RecordSelectionFormula = "{comando.anno}>=1990 and {comando.anno}<=2000"

Mettendo pure che sia l'unica soluzione, in quanto non posso modificare la clausola WHERE della query del report, qualcuno sa dirmi nel caso di selezioni su molti record la velocità di esecuzione è la stessa di quella che avrei con una query in cui il filtro viene scritto nella clausola WHERE?

freeteo Profilo | Guru

>Da quanto sono riuscito a trovare sul sito BusinessObjetcts non
>è possibile modificare la query di un Comando SQL a runtime.
esatto, confermo hai solo la selectionformula come filtro possibile


>Mettendo pure che sia l'unica soluzione, in quanto non posso
>modificare la clausola WHERE della query del report, qualcuno
>sa dirmi nel caso di selezioni su molti record la velocità di
>esecuzione è la stessa di quella che avrei con una query in cui
>il filtro viene scritto nella clausola WHERE?
sinceramente non ho un documento ufficiale per questo, ma dalla mia esperienza è meglio usare l'ottimizzazione del where nella query con ado.net anche perche' se la cosa è complessa, non hai soluzioni dato che il report lavora sui campi che ha come sorgente anche nei filtri...
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