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 34 35 36 37 38 39
| Sub test()
Dim prm() As OleDbParameter = {New OleDbParameter}
With prm(0)
.Value = 1 : .Size = 8 : .DbType = DbType.Int16
End With
MessageBox.Show($"a=1 : {If(OpenFtxt("?=1", prm)(0)(0), "Vrai", "Faux")}") '"a=1"
prm = {New OleDbParameter, New OleDbParameter}
With prm(0)
.Value = 3 : .Size = 8 : .DbType = DbType.Int16
End With
With prm(1)
.Value = 3 : .Size = 8 : .DbType = DbType.Int16
End With
MessageBox.Show($"b>c : {If(OpenFtxt("?>?", prm)(0)(0), "Vrai", "Faux")}") ' "b>c"
prm = {New OleDbParameter}
With prm(0)
.Value = 6 : .Size = 8 : .DbType = DbType.Int16
End With
MessageBox.Show($"c mod 2 = 0 : {If(OpenFtxt("? mod 2 = 0", prm)(0)(0), "Vrai", "Faux")}") '"c mod 2 = 0"
End Sub
Private Function OpenFtxt(ByVal SQL As String, PRM() As OleDbParameter) As DataTable '
If SQL.ToUpper.IndexOf("SELECT ") = True Then SQL = "Select " + SQL
Dim dt As New DataTable 'on déclare le datatable qui va contenire le résulta de la requête
Using cn As New OleDbConnection
cn.ConnectionString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={Application.StartupPath};Extended Properties='text;HDR=No;FMT=Delimited';"
cn.Open()
Using cm As New OleDbCommand
cm.Connection = cn
cm.CommandText = SQL
For Each P As OleDbParameter In PRM
cm.Parameters.Add(P)
Next
dt.Load(cm.ExecuteReader)
Return dt
End Using
End Using
End Function |
Partager