Chemin vers Base de Données sans DialogBox

dullbrain Messages postés 29 Date d'inscription mardi 15 décembre 2009 Statut Membre Dernière intervention 12 novembre 2010 - 17 juin 2010 à 14:00
 Utilisateur anonyme - 18 juin 2010 à 20:29
Bonjour à tous,

J'ai déjà réussi à faire en sorte qu'un utilisateur puisse, via une boîte de dialogue, choisir une base et ensuite récupérer son chemin pour s'y connecter.

Maintenant, dans l'application que je développe, on souhaite que personne ne puisse choisir la base, il faudrait donc que la connexion se fasse via des infos en dur, mais pas dans le code. J'avais donc pensé à stocker le chemin dans un fichier texte et en cas de déplacement de la base, il aurait suffit de modifier le fichier texte dans recompiler. Le problème, c'est que ce fichier texte doit bien être trouvé par le programme, et que donc son chemin ne doit pas varier.

Auriez vous une solution pour ce problème ?

Merci d'avance !

11 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
17 juin 2010 à 14:31
Bonjour,

Fichier texte ou ini dans le répertoire de l'exe (facilement récupérable avec application.startuppath en .net).Mais bon cela n'empêcherait pas un utilisateur lambda de le déplacer ou de le supprimer..

Tu peux également inscrire cette info dans la base de registre.

Et au lancement ton programme ira vérifier le fichier texte ou la base de registre pour récupérer le chamin de ta base


L'expérience, c'est une connerie par jour, mais jamais la même..
0
dullbrain Messages postés 29 Date d'inscription mardi 15 décembre 2009 Statut Membre Dernière intervention 12 novembre 2010
17 juin 2010 à 16:28
Les utilisateurs lambda devront juste se servir du soft, pour eux ça s'arrête là, le truc du chemin pas en fixe c'est pour des raisons de facilité en cas de changement de serveur ou autre.

Du coup, comment on lie un fichier texte à un exe ?
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
17 juin 2010 à 23:36
Salut,

J'ai créé une boite de dialogue pour la connexion à MS SQL Server, tu peux t'en servir ou t'en inspirer.

Personnelement pourquoi tu ne met pas tes infos de connexion au sein du soft, je sais bien que tes utilisateurs n'irons pas configurer la connexion, mais il n'irons pas non plus modifier ou supprimer des propriétés ou des fichiers... Si tu penses comme ca alors pense à vérouiller les dossier système au cas ou, et aussi interdite l'exéctution d'application, puis boucler la tour dans un placard pour éviter que par accident il y mettent le feu ou la fasse tomber...

Il y en a qui n'y connaissent rien je te l'accorde, moi même ayant un pied dans la maintenance je suis bien placé pour le savoir, mais de la a passer par des méthodes comme celle-ci il n'y a aucun intérêt...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
dullbrain Messages postés 29 Date d'inscription mardi 15 décembre 2009 Statut Membre Dernière intervention 12 novembre 2010
17 juin 2010 à 23:41
Lol, je suis en stage et je fais juste ce qu'on me dit ! On m'impose un chemin qui peut varier et qu'on doit pouvoir changer sans recompiler, après je dois le faire point barre ! ceci dit je suis bien d'accord avec toi, mais bon j'ai pas le choix ! Je vais donc essayer avec un fichier texte ! Merci :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BOBO CALIMERO Messages postés 22 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 2 novembre 2010
18 juin 2010 à 08:55
Personnellement, dans mes applis, j'ai toujours une commande de menu qui envoi vers une fenêtre de configuration dans laquelle, l'utilisateur peut spécifier les chemins d'accès vers les fichiers "supports" (bases de données, documents modèles, etc.). L'ensemble de ces informations de configuration sont enregistrées dans le répertoire de ton application (App.Path), sous forme de fichier ini ou autre.

Au démarrage de mon application, des tests sont effectués pour vérifier la présence du fichier (par exemple ini) dans le répertoire d'application et pour vérifier également que les chemins d'accès qu'il mentionne sont accessibles. En cas de problème, je renvoie l'utilisateur à la fenêtre de configuration...

Ton fichier ini (ou autre, dans ton App.Path) porte toujours le même nom (précisé dans ton code) en revanche, les infos qu'il contient sont spécifiés par l'utilisateur lors de la configuration. Le programme utilise systématiquement ces chemins d'accès pour lire/écrire des infos.
0
dullbrain Messages postés 29 Date d'inscription mardi 15 décembre 2009 Statut Membre Dernière intervention 12 novembre 2010
18 juin 2010 à 10:38
D'accord, en gros ça revient à créer un fichier avec une extension en .ini, la mettre dans les ressources, tester au début du programme si ce fichier est présent, et ensuite aller lire dedans le chemin dans mon cas de la base à utiliser. Et du coup pour la modification de ce .ini, ça se fait via ton programme ?
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
18 juin 2010 à 11:19
j'ai toujours une commande de menu qui envoi vers une fenêtre de configuration dans laquelle, l'utilisateur peut spécifier les chemins d'accès vers les fichiers "supports" (bases de données, documents modèles, etc.


Je pense que oui

Comme je te l'ai dis j'ai crée une boîte de dialogue pour les connexions distantes (MS SQL Serveur) mais c'est facilement adaptable pour d'autres serveurs de données, le principe est simple tu saisis les paramètres de connexion au serveur distant, puis tu les enregistres, ces données sont sauvegardés dans un fichier crypté sur le disque, puis l'utilisateur a juste a choisir sa connexion au démarrage du logiciel (sans avoir a saisir quoi que ce soit à nouveau), ce qui permet la connexion facile a plusieurs serveurs/bases. Cherches "SQL Connector" dans mes sources.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
BOBO CALIMERO Messages postés 22 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 2 novembre 2010
18 juin 2010 à 14:10
D'accord, en gros ça revient à créer un fichier avec une extension en .ini, la mettre dans les ressources, tester au début du programme si ce fichier est présent, et ensuite aller lire dedans le chemin dans mon cas de la base à utiliser. Et du coup pour la modification de ce .ini, ça se fait via ton programme ?


C'est exactement ça : quand l'utilisateur veut modifier des paramètres de configuration, il passe par la fenêtre de configuration. Tous les paramètres qu'il modifie sont enregistrés dans le fichier ini (ou autre...) après avoir été vérifiés par ton programme (bien entendu.)
0
dullbrain Messages postés 29 Date d'inscription mardi 15 décembre 2009 Statut Membre Dernière intervention 12 novembre 2010
18 juin 2010 à 19:11
Du coup si jamais la boîte change de serveur, le gars il a juste à lancer le soft, ça ne se connecte évidemment pas, du coup il change le .ini avec le nouveau chemin valide, et hop c'est reparti. C'est le principe ?

Désolé si je pose beaucoup de questions mais ce stage est assez important pour moi donc je veux vraiment pondre un bon truc au final ! Et merci à tous de répondre :)
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
18 juin 2010 à 19:44
Oui c'est le principe =)

En .Net, tu as aussi les paramètres d'application pour stocker des variables sur le disque et les retrouver au prochain démarrage, ce qui t'évite d'avoir à saisir le code pour l'enregistrement/lecture dans le fichier. Si c'est une base locale (Ecxel, Access, CSV etc...) qui ne nécessite qu'un chemin d'acceès pour la connexion (pas de paramètres ou d'identifiants) alors tu peux en effet le stocker dans les paramètres d'appli, dans le cas contraire, ce n'est pas recommandé pour des questions de sécurité, car le fichier est en claire sur le disque.


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Utilisateur anonyme
18 juin 2010 à 20:29
Personnellement, pour qu'une appli retrouve facilement un fichier, j'utiliserai les SpecialsDirectory de l'espace de nom My

Pour le fameux dossier "mes documents"
My.Computer.FileSystem.SpecialDirectories.MyDocuments


ou plus commode le très utile dossier temp
My.Computer.FileSystem.SpecialDirectories.Temp


Mais ca n'est qu'une suggestion.
Bonne soirée.
0
Rejoignez-nous