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
e nella stored procedure dovrei essere in grado di impostare il desiderato valore di ORDER BY.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
Ho indicato con alcuni punti interrogativi il punto in cui mi son fermato, non sapendo come completare la query.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
C'è modo di risolvere il problema ?
Grazie per l'attenzione.

Rispondi quotando