Petit problème avec vb6 et mysql - VB/VBA/VBS - Programmation
Marsh Posté le 03-01-2006 à 14:35:35
ben regarde si les valeur de server, port ou UID sont vides et tu sauras si tu en es à ton premier démarrage ou non
Marsh Posté le 03-01-2006 à 15:16:54
mareek a écrit : ben regarde si les valeur de server, port ou UID sont vides et tu sauras si tu en es à ton premier démarrage ou non |
C'est ce que je me suis dit, mais il me semble qu'il devrait y avoir une façon plus élégante, de plus, si je passe par un DSN, si je créé un DSN vide par exemple, il me sort bien une erreur de connexion.
Mais d'un autre côté je trouves ça redondant d'avoir les informations de connexion dans un DSN et dans le registre.
Marsh Posté le 03-01-2006 à 15:30:58
swampdrg a écrit : C'est ce que je me suis dit, mais il me semble qu'il devrait y avoir une façon plus élégante, de plus, si je passe par un DSN, si je créé un DSN vide par exemple, il me sort bien une erreur de connexion. |
C'est une question de point de vue. Personnellement, je trouve que c'est un peu lourd de tester si une chaine est vide en tentant de se connecter à une base de données
Marsh Posté le 03-01-2006 à 15:35:48
mareek a écrit : C'est une question de point de vue. Personnellement, je trouve que c'est un peu lourd de tester si une chaine est vide en tentant de se connecter à une base de données |
Moi aussi, mais comment faire autrement ?
Marsh Posté le 03-01-2006 à 15:49:55
swampdrg a écrit : Moi aussi, mais comment faire autrement ? |
Comme je l'ai dit dans mon premeir post : vérifier que les paramètres ne sont pas vides
Marsh Posté le 03-01-2006 à 15:51:32
mareek a écrit : Comme je l'ai dit dans mon premeir post : vérifier que les paramètres ne sont pas vides |
Mais comme tu disais, est-ce que ce n'est pas lourd un peu ? Il me semble qu'il doit y avoir un moyen plus pratique ..
Marsh Posté le 03-01-2006 à 16:00:38
swampdrg a écrit : Mais comme tu disais, est-ce que ce n'est pas lourd un peu ? Il me semble qu'il doit y avoir un moyen plus pratique .. |
je trouvais lourd de tenter la connection avec les paramètres vides. C'est difficile de faire plus léger que "if ParamServer = vbNullString Or ParamPort = vbNullString Or ParamUID = vbNullString then"
Marsh Posté le 03-01-2006 à 16:10:57
mareek a écrit : je trouvais lourd de tenter la connection avec les paramètres vides. C'est difficile de faire plus léger que "if ParamServer = vbNullString Or ParamPort = vbNullString Or ParamUID = vbNullString then" |
Ah ok
Mais comment se fait-il que la connexion s'établisse avec des chaînes vides ? C'est bizarre ..
Marsh Posté le 03-01-2006 à 16:17:15
swampdrg a écrit : Ah ok |
il doit mettre des paramètres par défaut genre localhost et il tombe sur un serveur existant.
Marsh Posté le 03-01-2006 à 16:30:40
Comment n'y ais-je pas pensé plus tôt
Aussi je me demandais comment bien gérer le partage de la bd dans mon application ?
Mon application pourra être installé sur plusieurs postes, on peut y ajouter des noms de personnes dans la table, adresses, etc. Il y a aussi des fenêtres dans lesquels il y a des listbos et des combobox dont le contenu est remplie avec les données des tables.
Mais comment gérer le partage ? Par exemple, pour rafraîchir les listbox avec les données qui sont dans la table, ainsi que les combobox, je vois mal mettre un timer qui rafraîchit la listbox à toute les secondes.. De plus, je ne sais pas comment je pourrais gérer le fait que si quelqu'un essaye d'utiliser un nom de personne qui est dans une table, et qu'un autre usager, essaye de l'effacer. J'avais idée d'y ajouter un champ "lock" avec le nom d'usager et le nom du poste de qui est en train de l'utiliser ..
Marsh Posté le 03-01-2006 à 16:39:44
Le plus simple c'est dignorer le problème
Générallement, ce genre de situation est très rare en pratique. Après, si tu te trouves dans un cas où ça arrive, commence par faire un lock sur les données dès que l'utilisateur accède à un écran où il peut les modifier.
Marsh Posté le 03-01-2006 à 16:50:48
mareek a écrit : Le plus simple c'est dignorer le problème |
Ok
Mais pour faire un lock est-ce que il y a quelque chose qui me permet de faire ça avec mysql ou si je dois faire un champs lock_user avec le nom de la machine ? je voudrais pouvoir informer l'usager, qui est-ce qui à locké les données.
Pour le moment j'initialise Ado avec le curseur aduseclient. et j'ouvre mes recordset avec adOpenKeyset, adLockBatchOptimistic
Marsh Posté le 03-01-2006 à 17:02:06
Avec des tables MyISAM, tu ne peux verrouiller que la table dans son entièrereté. C'est chiant.
Voir les instructions LOCK et UNLOCK dans le manuel MySQL.
Marsh Posté le 03-01-2006 à 14:16:58
Salut, j'ai un petit problème, je fais un programme qui partage une bd mysql, donc au démarrage je fais une tentative de connection. Le problème, c'est que lors du premier démarrage il n'y a pas de nom de serveur, username, login, etc. Donc pour la connectionstringdu premier démarrage, c'est: Server=;Port=;UID=; etc.
Étant donné que je ne spécifie rien, je m'attendais à ce qu'il renvoit une erreur de connection, mais non
Alors ma fenêtre qui demande d'enter les informations de connection n'apparait pas, puisque la connection ne retourne pas d'erreur.
On dirait qu'il ne tente qu'une connection avec le driver, simplement.
Comment faire pour corriger ce problème ?
Ah oui je place mes informations de connection avec: SaveSettings et GetSettings dans la base de registres.
Merci.