Le 28 mai 2008 à 08:38, Robin de Kat a écrit :
Toutes mes excuses
OK OK OK, acceptées, on va pas se fâcher.
Ceci dit, fais attention à ta manière de rédiger tes messages, je
crois bien que ce n'est pas la première fois que tu "agaces"...
;-)
Si je me suis permis ce commentaire "hors sujet", c'est parce qu'il me
semble que tu débutes sur RB.
Déjà gros indice : tu ne connais pas les modules...
Je ne me suis pas permis de faire un commentaire juste pour me
"satisfaire intellectuellement" (j'ai d'autres domaines pour ça !).
J'insiste...
Je pense qu'il vaut beaucoup mieux rester connecté à une base de
données tant que l'application est lancée.
Depuis que je travaille avec des serveurs de base de données, je n'ai
jamais vu une connexion se perdre sans une bonne raison (serveur
planté, réseau HS...)
Et de toute façon, si la connexion est perdue, tu le sauras en
envoyant ta requête SQL : ton RecordSet ne contiendra aucun
enregisrement (ou sera nil) et les propriétés .Error, .ErrorCode
et .ErrorMessage de ta base de données devrait t'indiquer de quelle
erreur il s'agit.
Evidemment, si ton appli n'a besoin que très occasionnellement des
données de la base, il vaut effectivement mieux s'y connecter
uniquement quand c'est nécessaire (et puis ça évite les "time out").
Par contre, plutôt que de répéter les mêmes lignes de code de
connexion à la base, utilise une méthode globale (= dans un module,
nous y arrivons) !
Plusieurs avantages :
économie de temps durant le développement
code plus léger
plus facile à entretenir
plus facile à faire évoluer
Ajoute un module à ton projet et dans ce module, crée une méthode
"ConnectToDB" (par exemple).
Cette méthode retourne une "PostgreSQLDatabase" si la connexion a été
établie, nil dans le cas contraire.
Ainsi tu peux remplacer ces lignes :
Dim db as PostgreSQLDatabase
db= New PostgreSQLDatabase
[...]
db.host="localhost"
db.port=5432
db.DatabaseName="sxcollecte"
db.Username="postgres"
db.Password=""
If db.connect then
par :
Dim db as PostgreSQLDatabase
[...]
db = ConnectToDB()
if db <> nil then
Si l'adresse du serveur, son port, le nom de la base de données ou les
paramètres d'identification changent, tu n'as qu'à les modifier en un
seul endroit.
Et si finalement tu optes pour une connexion permanente à ta base de
données, le module peut aussi contenir tout ce qu'il faut pour gérer
cette connexion.
Les modules, c'est simple, pratique et puissant. En les nommant
correctement, en utilisant les "scopes" "global", "public" et
"private", tu obtiens un code plus rationnel, plus lisible, plus
facile à débuguer.
Bonne continuation
Eric
|