Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Debutant] Je pige vraiment pas un truc... si vous avez deux mins pour m'aider....

3 réponses
Avatar
llopht
Salut à tous,

Je dois faire une application reliée à une base de données SQL

Je créé donc un module dans lequel je mets un Main que j'utilise pour le
démarrage. Celui-ci contient des variables publiques et instancie une
fenêtre Identification nommé formulaireIdentification.

Dans la fenêtre identification j'ai glissé une table. J'ai donc désormais un
SQLConnection, un SQLDataAdapter et un DataSet. Je réalise mon
identification via une procédure stockée et une fois terminé j'ouvre une
nouvelle fenêtre (la fenêtre principale de mon application).

1ère question. Le open de la connection est dans cette page or pour moi il
devrait être dans le main (pour gérer la connexion, l'affichage des
interfaces et à la fin, la déconnexion). Seulement il est impossible de
rajouter via la boite à outils un composant SQLConnection dans le module
(alors que via le code c'est forcement faisable). J'ai besoin du
SQLConnection créé via la boite à outils et non par le code pour la raison
suivante :

Dans ma seconde fenêtre j'ajoute un DataSet. Je lui indique de créé une
nouvelle instance du groupe de données que j'ai créé dans la fenêtre
précédente (qui fait donc référence au SQLConnection que j'ai créé). Enfin
je vais dans mon composant (janus grid) et je lui indique d'utiliser le
DataSet pour m'afficher les colonnes de la table.

2ème question. Pour que je puisse configurer (facilement et agréablement) le
composant j'ai besoin d'un dataset créé depuis la boîte à outils (qui fait
référence au Dataset que je viens de créer). Le composant récupère ainsi la
structure de la table et je joue ensuite avec les propriétés pour obtenir le
résultat dont j'ai besoin. Maintenant le problème c'est que pour remplir le
dataset je suis obligé de définir une variable formulaireIdentification
comme public ainsi que SQLDataAdpater et d'appeller la méthode fill
du DataAdapter du forumlaireIdentification.

ce que je trouve source à erreur..et pas du tout rigoureux... donc comment
gérer ça proprement ???

Merci

jérôme

PS. Si au moins qqun pouvait me donner un bout de réponse j'avancerai...

3 réponses

Avatar
Ambassadeur Kosh
maintenant, la connection, c'est une action quantique. ça s'ouvre, on peche
les données, et on referma aussitot.
on ouvre et ferme ainsi des connections des milliers de fois par "session"
sans aucun probleme. l'efficacité, c le boulot du pool de connection.

donc, tu poses ton dataset, ta sqlconnection, et ton dataadapter dans chaque
fenetre, et c'est royal.

ce que je trouve source à erreur..et pas du tout rigoureux... donc comment
gérer ça proprement ???



ben justement, c'est bien plus propre. en tout cas, bien plus que mettre des
variables globales et public dans un Main :o)
Avatar
Mikado
Humm... ok... mais dans ce cas comment gérer le connectionstring de manière
globale (genre pour définir le nom et le mot de passe de l'utilisateur) et
surtout à quel moment doit on faire l'open et le close (sur chaque
formulaire ???).

ben justement, c'est bien plus propre. en tout cas, bien plus que mettre
des variables globales et public dans un Main :o)



ça on est parfaitement d'accord :) :)
Avatar
Ambassadeur Kosh
> Humm... ok... mais dans ce cas comment gérer le connectionstring de
manière globale



la ok.
la connection-string peut être décrite comme globale. on va pas la resaisir
à chaque formulaire.

facile : public static string.
mieux : public static string avec un cryptage.
mieux : une class ConnectionParameters (private readonly string et des
properties name et password), crée à l'identification, detenue par la
mainform, et passée aux protagoniste, ou alors qu'ils reclament en
presentant une Evidence.

en fait je me demande si c'est pas possible d'avoir la strategie pour
l'identité prise en charge par la couche du server. en gros, tu recois un
event, et la tu affiches ta boite d'identification, tu renvoies les infos,
et il t'embete plus. pas d'infos qui persistent dans l'appli de maniere trop
visibles, ça transite sous forme securisée et tout et tout.. idée à
confirmer par les conaisseurs.

(genre pour définir le nom et le mot de passe de l'utilisateur) et surtout
à quel moment doit on faire l'open et le close (sur chaque formulaire
???).



En général, tu ne fais pas l'open et close explicitement. c'est le Fill qui
le fait. toi tu t'occupes de rien, excepté peut être désactiver la
notification aux grids et companie pour pas redessiner à chaque ligne que ça
ajoutes.

donc oui, chaque formulaire a son composant connection et son dataset en
bas, et le Close et Open sont faits pour toi en général au Load de chaque
Form (Fill) et au click sur valider les changements (Update).

j'imagine que tu penses en mode "connecté". normal, et on est nombreux a
être passés par la.
essaye d'occulter ça, et de jouer avec le modele deconnecté / transactions
optimistes.
tu vas voir, c'est pas mal du tout, et les perfs sont plutôt bonnes.
ça secoue pas mal d'idées reçues tout ça...

--
Ambassadeur Kosh
Vcs-Timeless France