Store Procedure con DDL

mercoledì 05 novembre 2008 - 18.39

gae58 Profilo | Senior Member

salve, mi servirebbe un chiarimento sulla logica e su come vengono eseguite le SP.

uso MSSQL

Ho DDL1 con collegata a Tabella1

Ho DDL2 con collegata a Tabella2

entrambe le DDL sono collegate attraverso le rispettive SP.

DDL1 ha autoPostBack True

Vorrei che alla scelta di un elemento in DDL1 venga filtrata DDL2 se DDL1 uguale Tutti, in DDL2 vengano visualizzati tutti i movimenti.

La SP di DDL2 l'ho scritta così:
ALTER PROCEDURE dbo.SchedaAZRichTitoSP
(
@Codice nvarchar(4) = NULL,
@ddlCodi nvarchar(1) = "T"
)
AS

IF @Codice = @ddlCodi
SELECT DISTINCT Codice FROM
ELSE
SELECT DISTINCT Codice FROM SchedaAZ
WHERE Codice = @Codi
ORDER BY Codice
RETURN

Penso che a questo punto sceglindo l'elemento in DDL1 venga eseguita anche la SP della DLL2.
E' così oppure devo inserire la SP della DDL2 nella DDL1?

Spero di essere stato chiaro



Gaetano

lbenaglia Profilo | Guru

>uso MSSQL
Bene.

>Ho DDL1 con collegata a Tabella1
>
>Ho DDL2 con collegata a Tabella2
Cos'è DDLx?

>entrambe le DDL sono collegate attraverso le rispettive SP.
Che significa?

>DDL1 ha autoPostBack True
Cos'è?

>Vorrei che alla scelta di un elemento in DDL1 venga filtrata
>DDL2 se DDL1 uguale Tutti, in DDL2 vengano visualizzati tutti
>i movimenti.
Argh

>La SP di DDL2 l'ho scritta così:
>ALTER PROCEDURE dbo.SchedaAZRichTitoSP
> (
> @Codice nvarchar(4) = NULL,
> @ddlCodi nvarchar(1) = "T"
> )
>AS
>
> IF @Codice = @ddlCodi
> SELECT DISTINCT Codice FROM
> ELSE
> SELECT DISTINCT Codice FROM SchedaAZ
> WHERE Codice = @Codi
> ORDER BY Codice
>RETURN
Non ci credo dato che quel codice è errato

>Spero di essere stato chiaro
Sono più di 10 anni che seguo forum e newsgroup, ma difficilmente ho trovato un quesito così poco chiaro
Posta TUTTI i comandi T-SQL di CREATE TABLE, INSERT INTO, ecc. spiegando dettagliatamente il risultato che vorresti ottenere partendo da quei dati.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

gae58 Profilo | Senior Member

Chiedo scusa per la mancanza di chiarezza.

CREATE TABLE dbo.ProvaTab(
Ti nvarchar(4) NOT NULL,
Ri nvarchar(4) NOT NULL,
Descrizione nvarchar(50) NULL
) ON [PRIMARY]

INSERT INTO ProvaTab VALUES('1', 'B', 'bbbbbbbbbbbbbb');
INSERT INTO ProvaTab VALUES('2', 'C', 'cccccccccccccc');
INSERT INTO ProvaTab VALUES('2', 'D', 'dddddddddddddd');
INSERT INTO ProvaTab VALUES('3', 'E', 'eeeeeeeeeeeeee');
INSERT INTO ProvaTab VALUES('3', 'F', 'ffffffffffffff');
INSERT INTO ProvaTab VALUES('4', 'G', 'gggggggggggggg');
INSERT INTO ProvaTab VALUES('4', 'H', 'hhhhhhhhhhhhhh');
INSERT INTO ProvaTab VALUES('5', 'I', 'iiiiiiiiiiiiii');
INSERT INTO ProvaTab VALUES('5', 'L', 'llllllllllllll');
INSERT INTO ProvaTab VALUES('6', 'M', 'mmmmmmmmmmmmmm');
INSERT INTO ProvaTab VALUES('6', 'N', 'nnnnnnnnnnnnnn');

SP della Tabella ProvaTab
ALTER PROCEDURE dbo.Prova
(
@Ti nvarchar(4),
@DDL nvarchar(4) = "T"
)
AS
IF @Ti = @DDL
select Ti, Ri, Descrizione from ProvaTab
ELSE
select Ti, Ri, Descrizione from ProvaTab WHERE Ti=@Ti
RETURN


SP della Tabella, ma con Distinct su Ti
ALTER PROCEDURE dbo.ProvaTi
(
@Ti nvarchar(4) = NULL,
@ddlTi nvarchar(1) = "T"
)
AS
IF @Ti = @ddlTi
SELECT DISTINCT Ti FROM ProvaTab ORDER BY Ti
ELSE
SELECT DISTINCT Ti FROM ProvaTab WHERE Ti = @Ti ORDER BY Ti
RETURN


SP della Tabella, ma con Distinct su Ti
ALTER PROCEDURE dbo.ProvaRiTi
(
@Ti nvarchar(4) = NULL,
@ddlTi nvarchar(1) = "T"
)
AS
IF @Ti = @ddlTi
SELECT DISTINCT Ri FROM ProvaTab ORDER BY Ri
ELSE
SELECT DISTINCT Ri FROM ProvaTab WHERE Ti = @Ti ORDER BY Ri
RETURN

Ho una pagina web in cui sono posizionati 4 DropDownList ed una gridView.
Le quattro DropDownList (DDL, per comodità DDL1, DDL2, DDL3, DDL4), servono per filtrare i dati.
Leggendo i vari post ho capito che è meglio usare le Stored Procedure (SP).
Ogni DDL ha un item aggiuntivo con la Scritta --- Tutti --- e valore T. In questa maniera posso Filtrare la Tabelle visualizzando i dati che hanno la stessa caratteristica della DDl oppure tutti.

DDL1 è collegata ad un SqlDataSource con SP ProvaTi
<SelectParameters>
<asp:ControlParameter ControlID="ddlTi" Name="Ti" PropertyName="SelectedValue" />
</SelectParameters>

DDL2 è collegata ad un SqlDataSource con SP ProvaRiTi
<SelectParameters>
<asp:ControlParameter ControlID="ddlTi" Name="Ti" PropertyName="SelectedValue" />
</SelectParameters>

La DDL3 e 4 non le ho ancora provate se prima non capisco come funzionanao le prime 2
La GridView è collegata ad un SqlDataSource con SP Prova

Siccome è la prima volta che le uso, ho fatto alcune prove.
La prima è stata quella di filtrare i dati (sempre con una SP) con la DDL1 e va bene.

Poi ho effettuato altre prove dove alla scelta di un valore nella DDL1, la DDL2 dev'essere filtrata in base alla DDL1 e successivamente in base alla scelta della DDL2, la gridView va filtarta con i valori di DDL1 e DDL2

Spero di non aver omesso nulla e di essere statao chiaro.

Il tutto funziona sempre per la DDL1, mentre alla DDL2, si accodano i dati corriposndenti alla scelta effettuata enlla DDL1.
Ho provato ad usare DDL.databind() nel SelectIndexChanged della DDL1, ma niente da fare.

grazie


Gaetano
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