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.