> Автор: Май
> Буду просто вместо параметров создавать строку запроса конкатенацией с переменными.
Не понял, как
> Вопрос конечно остался, но для дальнейшей работы над задачей не так важно.
В виду того, что я не нашел такого синтаксиса в Акцессе, я бы сделал так:
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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
Function GetData_TRIO(ByVal Par As
ParIndTRIO, ByVal d As Date, ByVal Seccode As String) As Ind_TRIO
Dim TR As Ind_TRIO
Dim Vol As Double
Dim Kol As Double
Dim lcn As New OleDb.OleDbConnection(ConnStringInfo)
Dim qstr As String = "select sum(колво) as KOL, sum(объем) as VOL from сделки where код_бумаги = ? "
Dim str As String = " and DATEDIFF(""s"", время, ?) <= "
Dim str_buy As String = " and операция = 'Покупка' and DATEDIFF(""s"", время, ?) <= "
Dim str_sell As String = " and операция = 'Продажа' and DATEDIFF(""s"", время, ?) <= "
Dim cmd As New OleDb.OleDbCommand(qstr, lcn)
Dim pD As New OleDb.OleDbParameter
Dim pSec As New OleDb.OleDbParameter
Dim pT As New OleDb.OleDbParameter
Dim dr As OleDb.OleDbDataReader
REM===========================================================================
REM Проверка открытости соединения
REM===========================================================================
Try
If lcn.State = ConnectionState.Closed Then
lcn.Open()
End If
Catch e1 As Exception ' Ошибка открытия соединения
MsgBox(e1.Message)
End Try
REM===============================================
REM Формируем параметры запроса
REM===============================================
pSec.ParameterName = "@SEC"
pSec.DbType = DbType.String
pSec.Direction = ParameterDirection.Input
pSec.Value = Seccode
cmd.Parameters.Add(pSec)
pD.ParameterName = "@D"
pD.DbType = DbType.Date
pD.Direction = ParameterDirection.Input
pD.Value = d
cmd.Parameters.Add(pD)
pT.ParameterName = "@P"
pT.DbType = DbType.Double
pT.Direction = ParameterDirection.Input
pT.Value = Par.T_Long
cmd.Parameters.Add(pT)
cmd.CommandType = CommandType.Text
cmd.CommandText = qstr & str & "?"
Try
dr = cmd.ExecuteReader()
Kol = dr("Kol").Value ' Здесь я не знаю правильно синтаксиса. Посмотри сам
Vol = dr("Vol").Value ' Здесь я не знаю правильно синтаксиса. Посмотри сам
Catch e2 As Exception ' Ошибка чтения
MsgBox(e2.Message)
Return TR
End Try
Posted via ActualForum NNTP Server 1.4