QuesryParam




Public Sub CreateSQL(sTemplate As String, ParamArray vaArg() As Variant)
Dim sSQL As String, sCMD1 As String, sCMD2 As String
Dim iArg As Integer, nPos As Integer
' Template vuoto, esci !!

If Trim(sTemplate) = "" Then
Exit Sub
End If
' Crea la stringa sql come specificato, se ad esempio

' sTemplate="SELECT * FROM CLIENTI WHERE NOME LIKE '^*' ORDER BY ^"

' richiamando la funzione con

' sResult=CreateSQL(sTemplate, "ROS", "CODICE")

' si otterra' come risultato in sResult la stringa

' "SELECT * FROM CLIENTI WHERE NOME LIKE 'ROS*' ORDER BY CODICE"

' la funzione e' molto comoda per sostituire le queries

' parametriche e per creare queries dinamiche "al volo"

sSQL = sTemplate
nPos = 1
For iArg = LBound(vaArg) To UBound(vaArg)
nPos = InStr(nPos, sSQL, "^")
If nPos > 0 Then
sCMD1 = Mid(sSQL, 1, nPos - 1) & vaArg(iArg)
sCMD2 = Mid(sSQL, nPos + 1)
nPos = Len(sCMD1) + 1
sSQL = sCMD1 & sCMD2
Else
Exit For
End If
Next iArg
' ritorna il risultato

sTemplate = sSQL
End Sub

Crea una stringa SQL parametrica sostituendo tutte le occorrenze
del carattere "^" trovate nel template con i parametri passati, se
il numero di parametri e' inferiore al numero di caratteri "^" i
restanti caratteri non verranno sostituiti permettendo cosi' il richiamo
ricorsivo della funzione ed il "riempimento" progressivo della stringa










( quesryparam.html )- by Paolo Puglisi - Modifica del 17/12/2023