11 messaggi dal 30 maggio 2007
Ho un problema e vorrei capire se è possibile risolverlo senza scrivere porcate sulla stringa della query.

Su una pagina vb di ricerca.aspx sto provando ad effettuare una ricerca ed ho inserito dei valori parametrici per caricare una oggetto lista.
Il problema avviene quando provo a inserire il campo CodSede che è in IN quindi ad esempio ('RM1','RM2') non visualizza nulla come se venga interpretata un'unica stringa.

Si Puo risolvere?
Grazie anticipatamente Fabio

qui di sotto l'esempio

Dim StrQuery As String

StrQuery = "SELECT CodFiscale, Nome + ' ' + Cognome AS Nominativo FROM Anagrafica WHERE (Cognome LIKE @paramCognome) AND (Nome LIKE @paramNome)
AND (CodSede IN (@paramCodSede)) "

Me.listaDataSource1.SelectCommand = StrQuery
Me.listaDataSource1.SelectParameters("paramCognome").DefaultValue = Me.txtCognome.Text & "%"
Me.listaDataSource1.SelectParameters("paramNome").DefaultValue = Me.txtNome.Text & "%"

Me.listaDataSource1.SelectParameters("paramCodSede").DefaultValue = Session("CodSede")
189 messaggi dal 28 maggio 2007
Riesci a creare una Stored Procedure?


Per ricevere un "ARRAY", la tua SP dovrebbe essere così:

CREATE PROC dbo.ESEMPIO
(
  @ARRAY varchar(300)
)
AS
BEGIN
  SET NOCOUNT ON

  DECLARE @strSQL varchar(400)

  SET @strSQL = 'SELECT *  FROM TABELLA
  WHERE ID IN (' + @ARRAY + ')'

  EXEC(@strSQL)  
END
GO


Ovvero, in realtà non è un ARRAY (perchè SQL non lo supporta), ma funziona come se lo fosse.

saluti
Modificato da AndreaRoma il 30 maggio 2007 21.38 -

Andrea R.
11 messaggi dal 30 maggio 2007
Grazie il fatto di intervenire direttamente sulla query l'ho già testato era proprio questa la porcata da evitare... comunque passo un session dove contiene valori già con apici e separatore es: 'x','y','z',...

Grazie lo stesso
Modificato da Fabietto79 il 30 maggio 2007 21.19 -
non hai modo di recuperare 'x','y','z', con una selecte del db? nidificandola adeguatamente?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
11 messaggi dal 30 maggio 2007
Ignorantemente penso che il parametro gli serva al dbsource e per visualizzare il risultato sull'oggetto lista.
onestamente non ho capito, comuquela mia era una domanda,

ovvero se hai modo di fare:

WHERE ID IN (SELECT XXX....)

ovvero di poter recuperare anche i parametri x y z attraverso un altra query.

magari da una tabella temporanea.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
11 messaggi dal 30 maggio 2007
Non volevo essere scortese anzi grazie... il risultato della session è già di un campo di dabella il fatto è che secondo me gli apici e i separatori di una normale IN danno fastidio in qualche modo... il mio dilemma era sapere se usavo gli strumenti giusti passando un parametro su una IN

Grazie per la collaborazione ragazzi.
figurati, non mi eri sembrato scortese solo non avevo capito.

dai un occhiata alla storedprocedure (dbo.aspnet_UsersInRoles_AddUsersToRoles) che viena usata dalle Membeeship API

ti posto un frammento:

  WHILE(@Pos <= LEN(@RoleNames))
  BEGIN
    SELECT @NextPos = CHARINDEX(N',', @RoleNames,  @Pos)
    IF (@NextPos = 0 OR @NextPos IS NULL)
      SELECT @NextPos = LEN(@RoleNames) + 1
    SELECT @Name = RTRIM(LTRIM(SUBSTRING(@RoleNames, @Pos, @NextPos - @Pos)))
    SELECT @Pos = @NextPos+1

    INSERT INTO @tbNames VALUES (@Name)
    SET @Num = @Num + 1
  END


senza dilungarmi trovvo la stringa @RoleNames viene processata prima ed inseriti i valori estratti un una tabella temporanea.

processandoli prima ti puoi assicurare che non ci siano errori, caratteri strani o altro.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.