Bonjour,

J'ai un problème de no data found lorsque je tente d'exécuter une commande ADO "adCmdStoredProc". Voici le 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
Option Explicit
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cmd As ADODB.Command
Dim str_empid, strconnect As String
 
Private Sub cmd_get_Click()
 
    str_empid = txt_empid.Text
 
    Set cmd = New ADODB.Command
    cmd.ActiveConnection = con
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = "rand.empdetails"
cmd.Parameters.Refresh
 
    cmd.Parameters.Append cmd.CreateParameter("v_empid", adVarChar, adParamInput, 6, str_empid)
 
    Set rs = cmd.Execute
 
    If Not rs.EOF Then
        txt_firstname = rs.Fields(0)
        txt_title = rs.Fields(1)
        txt_address = rs.Fields(2)
    End If
 
    Set cmd.ActiveConnection = Nothing
 
End Sub
 
Private Sub Form_Load()
    strconnect = "Provider=OraOLEDB.Oracle.1;Password=jklm;Persist Security Info=True;User ID=system;Data Source=rand_db"
    con.Open strconnect, "", ""
End Sub
Or l'équivalent SQL Server marche très bien. Je précise que la connexion (con.Open) s'effectue avec succès.
Voici également les requêtes de création des trucs de la BD:

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
create table RAND.EMPLOYEES(
	"ID" int ,
	FirstName varchar2(20),
	Title varchar2(20),
	Address varchar2(20),
	CONSTRAINT "PK_EMPL0YEES" PRIMARY KEY(ID) 
	USING INDEX TABLESPACE RANDINDEX
	)TABLESPACE RANDDATA 
	LOGGING;
 
CREATE OR REPLACE procedure RAND.empdetails(v_empid int)
AS
v_FN varchar2(20);
v_Title varchar2(20);
v_Addr varchar2(20);
BEGIN
SELECT FirstName, Title, Address INTO v_FN, v_Title, v_Addr FROM Employees WHERE ID = v_empid;
END;
Par curiosité : que dois-je utiliser ? le provider de Microsoft ou celui d'Oracle ?