ODBC 3.51 et MySQL [Résolu]

Signaler
Messages postés
53
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
22 avril 2013
-
Messages postés
53
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
22 avril 2013
-
Bonjour,

Désireux de passer au serveur de base de données mySQL sous VB6 en utilisant le pilote ODBC 3.51, je voudrais avoir votre avis sur la version ADO à utiliser afin de profiter au maximum des possibiltés de mySQL à savoir prise en charge des procédures stockées, Triggers .... Aie je suis peut être un peu ambitieux sous VB6... Corrigez moi les gars si j'ai tort.

MDAC 2.7 fait-il l'affaire ou bien il faudrait peut-être utiliser la version 2.8

Je vous prie de bien vouloir m'aider afin de faire un bon départ.

Merci d'avance

10 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

non pas trop ambicieux, c'est tout à fait réalisable en VB6 ADO

voici les références les plus "anciennes / minimums" à avoir

'           msado25.tlb (Microsoft ActiveX Data Objects 2.5 Library)
'           msadox.dll (Microsoft ADO Ext. 2.7 for DLL and Security)
'           msjro.dll (Microsoft Jet And Replication Objects 2.6 Library)

donc pour le MDAC, faisable en 2.7, et sera compatible si le client est en 2.8 ou 2.81 (2.81 =2.8 + SP1)
après à toi de voir et de choisir
perso je suis passé au 2.81 mais n'observe aucune différence (pas particulièrement plus stable ou quoi que ce soit...)

NB : attention, TRIGGER en MYSQL oblige MYSQL 5 (et +), et çà se fait dans des DELIMITER

++
PCPT   [AFCK]
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
le SP6 de VB6 n'est pas juste à envisager, il est totalement indispensable pour tous types de projet VB6 !!
http://logiciel.codes-sources.com/logiciels/Service-Pack-pour-Visual-Basic-6-0---SP-144.aspx

bon courage ;)
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
53
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
22 avril 2013

Merci PCPT de m'avoir encouragé. Je vais m'y mettre dans les prochains jours et je te tiendrais au courant si cela ne te dérange pas trop.

Je voudrais te demander quel Service Pack tu utilises pour VB6 ? le SP6 est le dernier je crois.

Donc Mettre le SP6 sera t-il bénéfique pour mon prochain développement Client-Serveur ? avec MDAC 2.7 ?

Effectivement j'utilise mySQL 5.0.x

Encore merci et A+
Messages postés
53
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
22 avril 2013

Merci pour le précieux conseil.

Téléchargé et installé. Je vais installer aussi MDAC 2.8.

PS: j'ai participé au sondage
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
j'ai vu merci ;)

ps : tu peux valider la ou les réponses qui ont résolu ton problème (si c'est le cas), utile pour les personnes qui chercheront un topic avec un titre similaire
çà ne fermera pas ton topic, tu pourras donner suite

"je te tiendrais au courant si cela ne te dérange pas trop"
sans prob'

++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
53
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
22 avril 2013

Me voici de retour PCT.

Ca se présente plutôt bien mon ami, j'ai réussi à me connecter au serveur mySQL, à faire diverses opérations sur les tables, tout marche.

Mais j'ai une question sur les procédures stockées. Le but étant de récupérer le résultat du paramètre OUT dans une variable VB6. Voici un exemple:

1. Création de la procédure stockée sous console mySQL
CREATE PROCEDURE simpleproc (OUT param1 INT)

BEGIN

SELECT COUNT(*) INTO param1 FROM t;

END


2. Appel de la procédure stockée depuis VB6

    Ouvrir_Connexion
   
    Dim mCommande As New ADODB.Command

    mCommande.ActiveConnection = Conn
   
    mCommande.CommandText = "
CALL simpleproc(@a)
"
    mCommande.Execute

    mCommande.CommandText = "
Select @a
"

    mCommande.Execute
  Après je sais pas comment récupérer la valeur de @a dans une  variable VB6 

Tu en penses quoi l'ami

A+
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

euh... je ne comprends pas trop ta démarche
le but de la procédure stockée avec argument est justement d'en passer un, pas spécialement d'en avoir un retour BYREF
ce retour tu l'as avec toute requête ou PS (procédure stockées) mais alors aucun rapport avec le paramètre

à froid...., mais vraiment sans certitude (et là je ne peux pas tester) je dirais :

    Dim mCommande As New ADODB.Command

    With mCommande
        .ActiveConnection = Conn
        .CommandText = "simpleproc"
        .CommandType = adCmdStoredProc
        .Parameters("@a").Value = 0
        .Execute
        MsgBox .Parameters("@a").Value
    End With

à voir...
++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
53
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
22 avril 2013

Excuse moi car je n'ai pas bien su formuler ma question.

J'ai lu un article qui parle des procédures stockées dont voici ce qui nous intéresse:


L'exemple suivant est une procédure stockée simple, qui
utilise un paramètre de sortie
OUT
.
L'exemple utilise la commande
delimiter
du
client
mysql
pour modifier le délimiteur de
commande avant de définir la procédure. Cela permet au
délimiteur
;
d'être utilisé dans le corps
de la procédure, plutôt que d'être interprété par le client
mysql
.

mysql>
delimiter |


mysql>
CREATE PROCEDURE simpleproc (OUT param1 INT)

->
BEGIN

->
SELECT COUNT(*) INTO param1 FROM t;

->
END

->
|

Query OK, 0 rows affected (0.00 sec)

mysql>
CALL simpleproc(@a)|

Query OK, 0 rows affected (0.00 sec)

mysql>
SELECT @a|

+------+
| @a |
+------+
| 3 |
+------+
1 row in set (0.00 sec)

Le but est de pouvoir exécuter ce type de procédure à partir de Vb 6

Je te prie d'être patient avec moi

A+
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
je suis patient ne t'en fait pas, seulement actuellement je n'ai ni mysql ni sqlserver donc....

je garde ta question de côté et ferai les tests dès que possible (mais pas dans l'immédiat)

en attendant, peut-être un lien utile :
http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

bon courage
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
53
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
22 avril 2013

C'est exactement à partir de ce lien que j'ai collé l'exemple.

Prends ton temps. rien ne presse. et puis j'ai de quoi m'occuper en attendant.

Merci et A+