Bonjour,
j'essaie d'activer une procedure stockée qui fonctionne correctement en l'appelant dans l'interface MySQL par Call Get_RScapteur2(1234), par VB6 je passe en erreur à l'appel de o_Cmd.execute
Qui poura m'aider à debugguer cette PS ou ce code, d'avance merci pour les bonnes volontés et les réponses
dans Visual Basic voici mon code :
Public Function Get_RScapteur2(ByVal p_NumEtal As Integer) As ADODB.Recordset
Dim o_rs As ADODB.Recordset
Dim o_Cmd As ADODB.Command
Dim o_param As ADODB.Parameter
On Error GoTo Get_RSCapteur2_Error
If p_NumEtal = 0 Then Exit Function
Call Connex_Deb 'activation de la connexion au serveur
Set o_rs = New ADODB.Recordset
Set o_rs.ActiveConnection = cn ' la connexion est bien active sur le serveur souhaité
Set o_Cmd = New ADODB.Command
o_Cmd.ActiveConnection = cn ' association à la connexion en cours
o_Cmd.CommandType = adCmdStoredProc ' commande à activer de type Proc Stockée
o_Cmd.CommandText = "PSGet_SerieCapteur" 'nom de la PS dans MySQL
'--- Création du paramètre à passer à la PS ---
Set o_param = Nothing
Set o_param = o_Cmd.CreateParameter 'initialisation d'un objet Paramètre
o_param.name = "p_NoEtal" 'nom du paramètre -> même nom dans la PS
o_param.Direction = adParamInput 'paramètre en entrée
o_param.type = adUnsignedInt ' paramètre de type entiernon signée
o_param.size = 4 'taille 4 octets
o_param.value = p_NumEtal 'valeur du paramètre passée à la proc VB
Call o_Cmd.Parameters.Append(o_param) 'ajout du paramètre à o_Cmd
'--- Execution de la PSattente en retour d'un recordSet ---
Set o_rs = o_Cmd.Execute ----> Erreur ICI : Error -214721790 ..... You have an error in your SQL Syn tax; chex the manual ..... for the right
syntax to use near {CallPS_GetSerie_Capteur(1234)}
Exit Function
Get_RSCapteur2_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Get_RSCapteur2 of Module Base_Capteur"
Resume Next
End Function
'-------------------------------------------------------------
Voci maintenant la procedure stockée nommée PSGet_SerieCapteur qui attend un paramètre en entrée
DELIMITER $$
DROP PROCEDURE IF EXISTS `capteur`.`PSGet_SerieCapteur` $$
CREATE DEFINER=`prg_vb`@`% ` PROCEDURE `PSGet_SerieCapteur`(IN p_NoEtal INT UNSIGNED)
BEGIN
SELECT t1.Netal, t1.capteur,t2.Marque, t2.modele, t2.NSerie
FROM capteur.etalonnage AS t1 INNER JOIN capteur.identification AS t2 ON
(p_NoEtal = t1.Netal) AND (t1.capteur = t2.NCapt);
END $$
DELIMITER ;
cchanas