Newsgroup: it.comp.lang.visual-basic
Titolo: Problema con passaggio parametri a sp

Ciao a tutti,
ho un db Access con tabelle collegate che risiedono su MSSQL Server
2000. Su questi dati devo eseguire diverse stored procedure, così volevo
creare una funzione generica che esegua le sp, passando i seguenti
parametri:
- stringa di connessione
- nome della stored procedure da eseguire
- parametri della stored procedure
Mi son piantato sul passaggio dei parametri della stored procedure, nel
senso che non riesco a capire come li posso scrivere perché me li
accetti... Qui sotto riporto la mia funzione generica:
-----------------
Public Function ufn_EseguiStoredProcedure(P_StringaConnessione As
String, P_NomeSP As String, ParamArray P_Parametri() As Variant)
Dim cn As ADODB.Connection
Dim cmd As ADODB.Command
Dim Error As ADODB.Error
Dim lngReturnValue As Long
Dim X
On Error GoTo ErrorHandler
Set cn = New ADODB.Connection
With cn
    .ConnectionString = P_StringaConnessione
    .Open
End With
Set cmd = New ADODB.Command
With cmd
    .CommandType = adCmdStoredProc
    .CommandText = P_NomeSP
    'Aggiungo tutti i parametri
    For X = 0 To UBound(P_Parametri())
	'qui devo aggiungere i parametri...
    Next X
    'Aggiungo il parametor finale che raccoglie il valore ritornato
dalla stored procedure
    .Parameters.Append .CreateParameter("ReturnValue", adInteger,
adParamReturnValue)
    .ActiveConnection = cn
    .Execute
    lngReturnValue = .Parameters("ReturnValue").Value
End With
If lngReturnValue <> 0 Then
    MsgBox "Si è verificato l'errore: " & lngReturnValue, vbOKOnly +
vbExclamation
End If
Quit:
    Set cmd = Nothing
    cn.Close
    Set cn = Nothing
Exit Function
ErrorHandler:
    Dim strMsg As String
    For Each Error In cn.Errors
        strMsg = strMsg & Error.Description
    Next
    ufn_EseguiStoredProcedure = 1
    MsgBox strMsg, vbOKOnly + vbExclamation
    Resume Quit
End Function
-----------------
Ho provato a passare i parametri creando una matrice del tipo:
-----------------
Dim varXxx(4, 4)
varXxx(0, 0) = "@ParametroData"
varXxx(0, 1) = "adInteger"
varXxx(0, 2) = "adParamInput"
varXxx(0, 3) = ""
varXxx(0, 4) = "varianteData"
varXxx(1, 0) = "@ParametroOra"
varXxx(1, 1) = "adInteger"
varXxx(1, 2) = "adParamInput"
varXxx(1, 3) = ""
varXxx(1, 4) = "varianteOra"
-----------------
e anche un'altra matrice del tipo:
-----------------
Dim varYyy(1)
varYyy(0) = "@SpedData, adInteger, adParamInput, , varSpedFaxData"
varYyy(1) = "@SpedOra, adInteger, adParamInput, , varSpedFaxOra"
-----------------
...inutile dire che entrambe non funzionano, nel senso che quando il
codice arriva a dover aggiungere i parametri, mi restituisce un errore
ma senza alcun codice ne messaggio. Avete idea di come aiutarmi?
Ciao e grazie!
-- 
David

 - parametri della stored procedure
Circa un mese fa diedi una risposta per passare i parametri ad una stored 
procedure con VB6, prova a vedere qua se puň esserti d'aiuto:
Link corto:
http://snipurl.com/i6n5
Link lungo:
http://groups.google.it/group/it.comp.lang.visual-basic/browse_thread/thread/6f1140b183c8f20/c76cd901da3d6d57?q=return+code&rnum=3&hl=it#c76cd901da3d6d57
William. 

 
http://snipurl.com/i6n5
Ciao William,
intanto ti ringrazio per l'aiuto, ma devo ammettere che sono stato poco
chiaro nell'esporre il mio problema...
In pratica, io sapevo già passare i parametri alla stored procedure
tramite la funzione. Il problema è che la funzione mi deve servire per
lanciare stored procedure che hanno x parametri: posso lanciare una sp
che richiede un solo parametro o una sp che ne richiede 10 o più...
Quello che non sono riuscito a fare è creare una matrice che contenga
tutti i parametri, e poi ciclare all'interno di questa matrice per
aggiungere i parametri...
-- 
David