Ho una stored procedure in cui c'è un SELECT .... ORDER BY .....
L'ORDER BY è fortemente parametrizzato.
Da programma (sviluppato nel buon vecchio VB6) io valorizzo i parametri
codice:
 
 If TipoOrdine(QualeOrdine) = 0 Then
      Senso = " ASC"
   Else
      Senso = " DESC"
   End If
   Select Case QualeOrdine
      Case 0: strOrdine = "TabDateDip.RagioneSociale" + Senso + ",TabDateDip.CognomeNomeDipendente ASC,TabDateDip.Codice ASC"
      Case 1: strOrdine = "TabDateDip.CognomeNomeDipendente" + Senso + ",TabDateDip.Codice ASC"
      Case 2: strOrdine = "TabDateDip.DataSca" + Senso + ",TabDateDip.RagioneSociale ASC,TabDateDip.CognomeNomeDipendente ASC,TabDateDip.Codice ASC"
      Case 3: strOrdine = "TabDateDip.TipoPrestazione" + Senso + ",TabDateDip.RagioneSociale ASC,TabDateDip.CognomeNomeDipendente ASC,TabDateDip.Codice ASC"
      Case 4: strOrdine = "Codice" + Senso + ",TabDateDip.RagioneSociale ASC,TabDateDip.CognomeNomeDipendente ASC"
      Case 5: strOrdine = "Luogo" + Senso + ",TabDateDip.RagioneSociale ASC,TabDateDip.CognomeNomeDipendente ASC,TabDateDip.Codice ASC"
      Case 6: strOrdine = "NomeMedico" + Senso + ",TabDateDip.RagioneSociale ASC,TabDateDip.CognomeNomeDipendente ASC,TabDateDip.Codice ASC"
      Case 7: strOrdine = "Stato" + Senso + ",TabDateDip.RagioneSociale ASC,TabDateDip.CognomeNomeDipendente ASC,TabDateDip.Codice ASC"
   End Select

Set cmdB = New ADODB.Command
cmdB.ActiveConnection = cnn
cmdB.CommandType = adCmdStoredProc
cmdB.CommandText = "strOrganizzaGiornata"
cmdB.Parameters.Append cmdB.CreateParameter("strDataX", adVarChar, adParamInput, 10, strDataX)
cmdB.Parameters.Append cmdB.CreateParameter("strStato", adVarChar, adParamInput, 2, strStato)
cmdB.Parameters.Append cmdB.CreateParameter("strOrdine", adVarChar, adParamInput, 1000, strOrdine)
Set rsMese = cmdB.Execute
e nella stored procedure dovrei essere in grado di impostare il desiderato valore di ORDER BY.
codice:
    SELECT TabDateDip.RagioneSociale,TabDateDip.CognomeNomeDipendente,TabDateDip.DataSca,TabDateDip.TipoPrestazione,TabDateDip.Codice,TabDateDip.Luogo,TabDateDip.NomeMedico,
    TabDateDip.Stato,TabDateDip.ID,TabDateDip.IDAzienda,TabDateDip.IDDipendente,TabDateDip.IDMedico,TabDateDip.IDLuogoVisita,TabDateDip.DataPre,TabDateDip.Ora,TabDateDip.DataRegistrazione,
    TabDateDip.InServizio,TabDateDip.DataEff,TabAziende.DataSospesa FROM TabDateDip INNER JOIN TabAziende ON TabDateDip.IDAzienda = TabAziende.ID  
    WHERE 
    TabDateDip.DataSca<@strDataX 
    AND TabDateDip.InServizio='S' 
    AND TabDateDip.Stato=@strStato 
    ORDER BY   ??????
---    TabDateDip.RagioneSociale ASC,
---    TabDateDip.CognomeNomeDipendente ASC,
---    TabDateDip.Codice ASC
Ho indicato con alcuni punti interrogativi il punto in cui mi son fermato, non sapendo come completare la query.
C'è modo di risolvere il problema ?
Grazie per l'attenzione.