Bonjour à tous!
J'ai une fonction cosql qui me permet de mettre le résultat d'une reqûete dans un tableau spécifié préalablement.
Le probléme c'est qu'en faisant de la sorte, je n'arrive pas à faire une reqûete parametrée, car il faudrait que je puisse ajouter des parametres selon chaque cas (étant donné que la chaine arrive déja telle qu'elle, sans savoir ce qui est authentique de ce qui a pu être injecté).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Public Function cosql(ByRef sqlcmd As String, ByRef T(,) As String) As Boolean Dim dbco As OleDbConnection Dim dbdr As OleDbDataReader Dim dbcmd As OleDbCommand Dim i, j As Integer j = 0 dbco = New OleDbConnection(ConnectionString) dbco.Open() dbcmd = New OleDbCommand(sqlcmd, dbco) dbdr = dbcmd.ExecuteReader ReDim T(dbdr.VisibleFieldCount - 1, 0) While dbdr.Read() For i = 1 To dbdr.VisibleFieldCount If Not VarType(dbdr(i - 1)) = VariantType.Null Then T(i - 1, j) = ReQuote(dbdr(i - 1)) Else T(i - 1, j) = "0" End If Next i j = j + 1 ReDim Preserve T(dbdr.VisibleFieldCount - 1, j) End While T(0, j) = "EOF" dbdr.Close() dbco.Close() dbco.Dispose() dbco = Nothing dbdr = Nothing dbcmd = Nothing i = Nothing j = Nothing End Function
Est il possible, depuis une autre fonction, de faire quelquechose de semblable à ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 With cosql().dbcmd.Parameters .AddWithValue("@test1", test1) .AddWithValue("@test2", test2) .AddWithValue("@test3", test3) End With 'Et appeller ma fonction: cosql("SELECT ville_id, lib_ville FROM VILLE WHERE lib_ville in (@test1,@test2,@test3", t_ville)
Partager