Bonjour.

J'essaie de faire une requête paramétrée avec ADODB.Command sur une base de données SQL Server 2000.

J'ai l'erreur <'Must declare the variable '@tra_unique_id'.> à la ligne .Execute
en .NET ça marche comme ça. et en VB6??

Voici mon code

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
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
    Dim lngRecordsAffected      As Long
    Dim command                 As ADODB.command
    Dim param                   As ADODB.Parameter
 
    Set command = New ADODB.command
 
    With command
        .ActiveConnection = db
        .CommandType = adCmdText
        .CommandText = "INSERT INTO risk_tms_trade (tra_unique_id, tra_exg_ref, tra_exg_sub_ref, tra_type, tra_buy, tra_vol, tra_mar_ref, tra_env, " & _
                       "tra_floor, tra_ctr_ref, tra_ctr_ver, tra_call, tra_expiry, tra_strike, tra_price, tra_member, tra_cpty, tra_broker, tra_input_date, " & _
                       "tra_input_time, tra_exg_date, tra_exg_time, tra_clear_date, tra_gutu_msg, tra_match_msg, tra_status, tra_sub_status, tra_internal_status, " & _
                       "tra_match_order, tra_trader, tra_trading_env, tra_trading_type) " & _
                       "VALUES (@tra_unique_id, @tra_exg_ref, @tra_exg_sub_ref, @tra_type, @tra_buy, @tra_vol, @tra_mar_ref, @tra_env, " & _
                       "@tra_floor, @tra_ctr_ref, @tra_ctr_ver, @tra_call, @tra_expiry, @tra_strike, @tra_price, @tra_member, @tra_cpty, @tra_broker, @tra_input_date, " & _
                       "@tra_input_time, @tra_exg_date, @tra_exg_time, @tra_clear_date, @tra_gutu_msg, @tra_match_msg, @tra_status, @tra_sub_status, @tra_internal_status, " & _
                       "@tra_match_order, @tra_trader, @tra_trading_env, @tra_trading_type) "
 
    '** TODO: Recuperer les tailles des champs de manière dynamique
        Set param = .CreateParameter("@tra_unique_id", adVarChar, Size:=100, Value:=Trim$(riskTrade.tra_unique_id))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_exg_ref", adVarChar, Size:=20, Value:=Trim$(riskTrade.tra_exg_ref))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_exg_sub_ref", adVarChar, Size:=20, Value:=Trim$(riskTrade.tra_exg_sub_ref))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_type", adVarChar, Size:=10, Value:=Trim$(riskTrade.tra_type))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_buy", adVarChar, Size:=1, Value:=Trim$(riskTrade.tra_buy))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_vol", adInteger, Value:=riskTrade.tra_vol)
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_mar_ref", adVarChar, Size:=8, Value:=Trim$(riskTrade.tra_mar_ref))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_env", adVarChar, Size:=10, Value:=Trim$(riskTrade.tra_env))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_floor", adSmallInt, Value:=riskTrade.tra_floor)
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_ctr_ref", adVarChar, Size:=12, Value:=Trim$(riskTrade.tra_ctr_ref))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_ctr_ver", adVarChar, Size:=3, Value:=Trim$(riskTrade.tra_ctr_ver))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_call", adVarChar, Size:=1, Value:=Trim$(riskTrade.tra_call))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_expiry", adVarChar, Size:=8, Value:=Trim$(riskTrade.tra_expiry))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_strike", adDouble, Value:=riskTrade.tra_strike)
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_price", adDouble, Value:=riskTrade.tra_price)
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_member", adVarChar, Size:=12, Value:=Trim$(riskTrade.tra_member))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_cpty", adVarChar, Size:=12, Value:=Trim$(riskTrade.tra_cpty))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_broker", adVarChar, Size:=12, Value:=Trim$(riskTrade.tra_broker))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_input_date", adVarChar, Size:=8, Value:=Trim$(riskTrade.tra_input_date))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_input_time", adVarChar, Size:=6, Value:=Trim$(riskTrade.tra_input_time))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_exg_date", adVarChar, Size:=8, Value:=Trim$(riskTrade.tra_exg_date))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_exg_time", adVarChar, Size:=10, Value:=Trim$(riskTrade.tra_exg_time))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_clear_date", adVarChar, Size:=8, Value:=Trim$(riskTrade.tra_clear_date))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_gutu_msg", adVarChar, Size:=20, Value:=Trim$(riskTrade.tra_gutu_msg))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_match_msg", adVarChar, Size:=20, Value:=Trim$(riskTrade.tra_match_msg))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_status", adVarChar, Size:=10, Value:=Trim$(riskTrade.tra_status))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_sub_status", adVarChar, Size:=10, Value:=Trim$(riskTrade.tra_sub_status))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_internal_status", adVarChar, Size:=10, Value:=Trim$(riskTrade.tra_internal_status))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_match_order", adVarChar, Size:=30, Value:=Trim$(riskTrade.tra_match_order))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_trader", adVarChar, Size:=20, Value:=Trim$(riskTrade.tra_trader))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_trading_env", adVarChar, Size:=12, Value:=Trim$(riskTrade.tra_trading_env))
        Call .Parameters.Append(param)
 
        Set param = .CreateParameter("@tra_trading_type", adVarChar, Size:=12, Value:=Trim$(riskTrade.tra_trading_type))
        Call .Parameters.Append(param)
 
        lngRecordsAffected = -1
        Call .Execute(lngRecordsAffected, .Parameters)
 
    End With
 
    Set command = Nothing
    RiskTradeInsert = lngRecordsAffected