quella che segue è una stored procedure che deve riempire una tabella temporanea con dei dati
che dovrò poi stampare.

In questa stored ho 2 problemi:
1. la variabile @mioFiltro viene passata alla stored da vb e fin qui tutto ok. il problema mi si pone
nel momento in cui vado ad eseguire la select per riempire il cursore: non riesco a passare
alla clausola WHERE la mia variabile.

2. una volta dichiarato il cursore, la select che segue
presumo riempia il cursore stesso con il risultato della select
stessa, quindi con l'istruzione OPEN mioCursore io apro un cursore
già pieno. Come faccio a leggere i campi del cursore? con i recordset
si usa scrivere ad esempio mioRS("TitoloPostale"), ma qui come faccio?

codice:
CREATE PROCEDURE sp_CreaElencoPerStampaBuste
  @mioFiltro varchar(100)
AS
SET @mioFiltro = @mioFiltro + ' AND indIndirizzo > 0' 

/* riempio il cursore con il risultato della select sulla 
   tbnominativi*/
DECLARE @TitoloPostale varchar(10), @Nominativo varchar(100), 
        @IndirizzoCompleto varchar(200)
DECLARE @miaCittà varchar(20), @miaProvincia varchar(3), 
        @mioStato varchar(20)

DECLARE mioCursore CURSOR FOR

    SELECT IDNominativo, TitoloPostale, Titolo, 
     LTRIM(RTRIM(ISNULL(Cognome,' ') + ' ' + ISNULL(Nome,' ') 
     + ' ' + ISNULL(Posizione,' '))) AS Nominativo,
     IDSocietà, Indirizzo1, Cap1, IDCittà1, IDProvincia1, 
     IDStato1, Indirizzo2, Cap2, IDCittà2, IDProvincia2, 
     IDStato2, indIndirizzo
    FROM TBNominativi INNER JOIN 
     TBTitoli ON 
     TBNominativi.IDTitolo = TBTitoli.IDTitolo INNER JOIN 
     TBTitoliPostali ON 
     TBNominativi.IDTitoloPostale = 
                  TBTitoliPostali.IDTitoloPostale 
    WHERE + ' ' + @mioFiltro

    OPEN mioCursore

    FETCH NEXT FROM mioCursore

    WHILE @@FETCH_STATUS = 0
	
	BEGIN
/*Eseguo la select su indIndirizzo per sapere quale indirizzo 
  devo utilizzare nella stampa*/
	SET @TitoloPostale = mioCursore('TitoloPostale')
	SET @Nominativo = LTRIM(RTRIM(mioCursore('Titolo')
            + ' ' + mioCursore('Nominativo')))
		
	if mioCursore('indIndirizzo') = 1
	   BEGIN
             Select @miaCittà = Città FROM TBCittà
               WHERE IDCittà = mioCursore('IDCittà1')
             Select @miaProvincia = Provincia FROM TBProvincie
               WHERE IDProvincia = mioCursore('IDProvincia1')
	     Select @mioStato = Stato FROM TBStati 
               WHERE IDStato = mioCursore('IDStato1')
	     SET @IndirizzoCompleto = mioCursore('Indirizzo1') +
               Char(13) + mioCursore('Cap1')
	   END

	else if mioCursore.Field('indIndirizzo') = 2
	   BEGIN
             Select @miaCittà = Città FROM TBCittà 
               WHERE IDCittà = mioCursore('IDCittà1')
	     Select @miaProvincia = Provincia FROM TBProvincie 
               WHERE IDProvincia = mioCursore('IDProvincia2')
	     Select @mioStato = Stato FROM TBStati 
               WHERE IDStato = mioCursore('IDStato2')
	     SET @IndirizzoCompleto = mioCursore('Indirizzo2')
	   END			      
			
	SET @IndirizzoCompleto = @IndirizzoCompleto + Char(13) +
            @miaCittà + '(' + @miaProvincia + ')'
	if UPPER(@mioStato) <> 'ITALIA'  SET @IndirizzoCompleto = 
                 @IndirizzoCompleto + Char(13) + @mioStato

-- Inserisco i risultati nella tabella TBIndirizzoPostali

         INSERT TBIndirizziPostali
                 (TitoloPostale,Nominativo,IndirizzoCompleto) 
	   VALUES
                 (@TitoloPostale,@Nominativo,@IndirizzoCompleto)

        FETCH NEXT FROM mioCursore	

     END

CLOSE mioCursore
DEALLOCATE mioCursore

GO