J'écris une dll en VB2005 (je pourrais l'écrire en VB2008 si besoin), dont
le but est de lire tous les paramètres d'exécution d'un programme à partir
d'une table de base de données.
En gros, la table contient les champs suivants :
- nom du programme (varchar)
- clé du paramètre (int)
- description du paramètre (varchar)
- type du paramètre (varchar)
- valeur du paramètre (varchar)
Le type du paramètre indique si sa valeur est par exemple un Integer, un
String, un Char, un Boolean, un Array of Integer, etc.
Chacun des paramètres est chargé dans une classe ParametreProgramme, dont
les 5 propriétés ReadOnly permettent de lire les valeurs des champs énumérés
ci-dessus.
Un programme pouvant avoir plusieurs paramètres, une classe Programme
fournit une propriété ParametresProgramme qui est une collection de
ParametreProgramme.
Chaque programme appelle la dll pour lire ses paramètres. Il pourrait bien
sûr recevoir systématriquement une valeur String, à charge pour lui de
convertir dans le type adéquat. Je préfèrerais que ce soit la dll qui fasse
la conversion, pour renvoyer soit un Integer, soit un String, soit un Char,
etc. en fonction de son type. Problème, VB2005 refuse de surcharger une
propriété dont seuls les types de retour sont différents. Je pourrais
multiplier les propriétés : ValueInteger, ValueString, ValueChar, etc., mais
c'est fastidieux, lourd et inélégant.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilles TOURREAU [MVP]
"Gilbert Tordeur" a écrit dans le message de news:
Bonjour,
J'écris une dll en VB2005 (je pourrais l'écrire en VB2008 si besoin), dont le but est de lire tous les paramètres d'exécution d'un programme à partir d'une table de base de données.
En gros, la table contient les champs suivants : - nom du programme (varchar) - clé du paramètre (int) - description du paramètre (varchar) - type du paramètre (varchar) - valeur du paramètre (varchar)
Le type du paramètre indique si sa valeur est par exemple un Integer, un String, un Char, un Boolean, un Array of Integer, etc.
Chacun des paramètres est chargé dans une classe ParametreProgramme, dont les 5 propriétés ReadOnly permettent de lire les valeurs des champs énumérés ci-dessus.
Un programme pouvant avoir plusieurs paramètres, une classe Programme fournit une propriété ParametresProgramme qui est une collection de ParametreProgramme.
Chaque programme appelle la dll pour lire ses paramètres. Il pourrait bien sûr recevoir systématriquement une valeur String, à charge pour lui de convertir dans le type adéquat.
Ok, mais il faudra à la lecteur convertir la valeur chaine obtenu du SGBD en une valeur .NET (int, float, string...etc)
Je préfèrerais que ce soit la dll qui fasse la conversion, pour renvoyer soit un Integer, soit un String, soit un Char, etc. en fonction de son type. Problème, VB2005 refuse de surcharger une propriété dont seuls les types de retour sont différents. Je pourrais multiplier les propriétés : ValueInteger, ValueString, ValueChar, etc., mais c'est fastidieux, lourd et inélégant.
Vous n'aurez pas le choix de faire une unique propriété qui retourne un objet pour être le plus générique possible :
Public ReadOnly Property Valeur() As Object Get Return ... End Get End Property
Il faudra juste caster au moment de la lecture de celle-ci...
Dim val As Integer; val = CType(MaPropriété.Valeur, Int)
Quelqu'un a-t-il mieux à proposer ?
Merci d'avance, Gilbert
Cordialement
-- Gilles TOURREAU - MVP C#
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
"Gilbert Tordeur" <gilbert.tordeur@jci.com> a écrit dans le message de
news:uO0SrSGdIHA.4728@TK2MSFTNGP03.phx.gbl...
Bonjour,
J'écris une dll en VB2005 (je pourrais l'écrire en VB2008 si besoin), dont
le but est de lire tous les paramètres d'exécution d'un programme à partir
d'une table de base de données.
En gros, la table contient les champs suivants :
- nom du programme (varchar)
- clé du paramètre (int)
- description du paramètre (varchar)
- type du paramètre (varchar)
- valeur du paramètre (varchar)
Le type du paramètre indique si sa valeur est par exemple un Integer, un
String, un Char, un Boolean, un Array of Integer, etc.
Chacun des paramètres est chargé dans une classe ParametreProgramme, dont
les 5 propriétés ReadOnly permettent de lire les valeurs des champs
énumérés ci-dessus.
Un programme pouvant avoir plusieurs paramètres, une classe Programme
fournit une propriété ParametresProgramme qui est une collection de
ParametreProgramme.
Chaque programme appelle la dll pour lire ses paramètres. Il pourrait bien
sûr recevoir systématriquement une valeur String, à charge pour lui de
convertir dans le type adéquat.
Ok, mais il faudra à la lecteur convertir la valeur chaine obtenu du SGBD en
une valeur .NET (int, float, string...etc)
Je préfèrerais que ce soit la dll qui fasse la conversion, pour renvoyer
soit un Integer, soit un String, soit un Char, etc. en fonction de son
type.
Problème, VB2005 refuse de surcharger une propriété dont seuls les types
de retour sont différents. Je pourrais multiplier les propriétés :
ValueInteger, ValueString, ValueChar, etc., mais c'est fastidieux, lourd
et inélégant.
Vous n'aurez pas le choix de faire une unique propriété qui retourne un
objet pour être le plus générique possible :
Public ReadOnly Property Valeur() As Object
Get
Return ...
End Get
End Property
Il faudra juste caster au moment de la lecture de celle-ci...
Dim val As Integer;
val = CType(MaPropriété.Valeur, Int)
"Gilbert Tordeur" a écrit dans le message de news:
Bonjour,
J'écris une dll en VB2005 (je pourrais l'écrire en VB2008 si besoin), dont le but est de lire tous les paramètres d'exécution d'un programme à partir d'une table de base de données.
En gros, la table contient les champs suivants : - nom du programme (varchar) - clé du paramètre (int) - description du paramètre (varchar) - type du paramètre (varchar) - valeur du paramètre (varchar)
Le type du paramètre indique si sa valeur est par exemple un Integer, un String, un Char, un Boolean, un Array of Integer, etc.
Chacun des paramètres est chargé dans une classe ParametreProgramme, dont les 5 propriétés ReadOnly permettent de lire les valeurs des champs énumérés ci-dessus.
Un programme pouvant avoir plusieurs paramètres, une classe Programme fournit une propriété ParametresProgramme qui est une collection de ParametreProgramme.
Chaque programme appelle la dll pour lire ses paramètres. Il pourrait bien sûr recevoir systématriquement une valeur String, à charge pour lui de convertir dans le type adéquat.
Ok, mais il faudra à la lecteur convertir la valeur chaine obtenu du SGBD en une valeur .NET (int, float, string...etc)
Je préfèrerais que ce soit la dll qui fasse la conversion, pour renvoyer soit un Integer, soit un String, soit un Char, etc. en fonction de son type. Problème, VB2005 refuse de surcharger une propriété dont seuls les types de retour sont différents. Je pourrais multiplier les propriétés : ValueInteger, ValueString, ValueChar, etc., mais c'est fastidieux, lourd et inélégant.
Vous n'aurez pas le choix de faire une unique propriété qui retourne un objet pour être le plus générique possible :
Public ReadOnly Property Valeur() As Object Get Return ... End Get End Property
Il faudra juste caster au moment de la lecture de celle-ci...
Dim val As Integer; val = CType(MaPropriété.Valeur, Int)
Quelqu'un a-t-il mieux à proposer ?
Merci d'avance, Gilbert
Cordialement
-- Gilles TOURREAU - MVP C#
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Patrice
Si je comprends bien peut-être en regardant du coté des Generics en VB2008 (ce qui permettrait d'exposer sans doute le type du paramètre ainsi qu'une fonction à laquelle on passe son type : MyParameter.GetValue(MyParameter.Type) par exemple...
Si c'est pour lire dans un programme spécifique je typerais fortement le tout à la base (MySettings.Title, MySettings.PageSize avec une propriété par paramètre de fonctionnement etc...) . Sinon on peut creuser l'approche ci-dessus si c'est plutôt un programme généraliste qui lit pour info des paramètres exploités par d'autres applications...
-- Patrice
Si je comprends bien peut-être en regardant du coté des Generics en
VB2008 (ce qui permettrait d'exposer sans doute le type du paramètre
ainsi qu'une fonction à laquelle on passe son type :
MyParameter.GetValue(MyParameter.Type) par exemple...
Si c'est pour lire dans un programme spécifique je typerais fortement
le tout à la base (MySettings.Title, MySettings.PageSize avec une
propriété par paramètre de fonctionnement etc...) . Sinon on peut
creuser l'approche ci-dessus si c'est plutôt un programme généraliste
qui lit pour info des paramètres exploités par d'autres
applications...
Si je comprends bien peut-être en regardant du coté des Generics en VB2008 (ce qui permettrait d'exposer sans doute le type du paramètre ainsi qu'une fonction à laquelle on passe son type : MyParameter.GetValue(MyParameter.Type) par exemple...
Si c'est pour lire dans un programme spécifique je typerais fortement le tout à la base (MySettings.Title, MySettings.PageSize avec une propriété par paramètre de fonctionnement etc...) . Sinon on peut creuser l'approche ci-dessus si c'est plutôt un programme généraliste qui lit pour info des paramètres exploités par d'autres applications...
-- Patrice
Gilbert Tordeur
Merci, je vais creuser tout ceci. Et mes excuses pour le retard dû à une petite indisponibilité. Gilbert
"Gilbert Tordeur" a écrit dans le message de news:
Bonjour,
J'écris une dll en VB2005 (je pourrais l'écrire en VB2008 si besoin), dont le but est de lire tous les paramètres d'exécution d'un programme à partir d'une table de base de données.
En gros, la table contient les champs suivants : - nom du programme (varchar) - clé du paramètre (int) - description du paramètre (varchar) - type du paramètre (varchar) - valeur du paramètre (varchar)
Le type du paramètre indique si sa valeur est par exemple un Integer, un String, un Char, un Boolean, un Array of Integer, etc.
Chacun des paramètres est chargé dans une classe ParametreProgramme, dont les 5 propriétés ReadOnly permettent de lire les valeurs des champs énumérés ci-dessus.
Un programme pouvant avoir plusieurs paramètres, une classe Programme fournit une propriété ParametresProgramme qui est une collection de ParametreProgramme.
Chaque programme appelle la dll pour lire ses paramètres. Il pourrait bien sûr recevoir systématriquement une valeur String, à charge pour lui de convertir dans le type adéquat. Je préfèrerais que ce soit la dll qui fasse la conversion, pour renvoyer soit un Integer, soit un String, soit un Char, etc. en fonction de son type. Problème, VB2005 refuse de surcharger une propriété dont seuls les types de retour sont différents. Je pourrais multiplier les propriétés : ValueInteger, ValueString, ValueChar, etc., mais c'est fastidieux, lourd et inélégant.
Quelqu'un a-t-il mieux à proposer ?
Merci d'avance, Gilbert
Merci, je vais creuser tout ceci. Et mes excuses pour le retard dû à une
petite indisponibilité.
Gilbert
"Gilbert Tordeur" <gilbert.tordeur@jci.com> a écrit dans le message de news:
uO0SrSGdIHA.4728@TK2MSFTNGP03.phx.gbl...
Bonjour,
J'écris une dll en VB2005 (je pourrais l'écrire en VB2008 si besoin), dont
le but est de lire tous les paramètres d'exécution d'un programme à partir
d'une table de base de données.
En gros, la table contient les champs suivants :
- nom du programme (varchar)
- clé du paramètre (int)
- description du paramètre (varchar)
- type du paramètre (varchar)
- valeur du paramètre (varchar)
Le type du paramètre indique si sa valeur est par exemple un Integer, un
String, un Char, un Boolean, un Array of Integer, etc.
Chacun des paramètres est chargé dans une classe ParametreProgramme, dont
les 5 propriétés ReadOnly permettent de lire les valeurs des champs
énumérés ci-dessus.
Un programme pouvant avoir plusieurs paramètres, une classe Programme
fournit une propriété ParametresProgramme qui est une collection de
ParametreProgramme.
Chaque programme appelle la dll pour lire ses paramètres. Il pourrait bien
sûr recevoir systématriquement une valeur String, à charge pour lui de
convertir dans le type adéquat. Je préfèrerais que ce soit la dll qui
fasse la conversion, pour renvoyer soit un Integer, soit un String, soit
un Char, etc. en fonction de son type. Problème, VB2005 refuse de
surcharger une propriété dont seuls les types de retour sont différents.
Je pourrais multiplier les propriétés : ValueInteger, ValueString,
ValueChar, etc., mais c'est fastidieux, lourd et inélégant.
Merci, je vais creuser tout ceci. Et mes excuses pour le retard dû à une petite indisponibilité. Gilbert
"Gilbert Tordeur" a écrit dans le message de news:
Bonjour,
J'écris une dll en VB2005 (je pourrais l'écrire en VB2008 si besoin), dont le but est de lire tous les paramètres d'exécution d'un programme à partir d'une table de base de données.
En gros, la table contient les champs suivants : - nom du programme (varchar) - clé du paramètre (int) - description du paramètre (varchar) - type du paramètre (varchar) - valeur du paramètre (varchar)
Le type du paramètre indique si sa valeur est par exemple un Integer, un String, un Char, un Boolean, un Array of Integer, etc.
Chacun des paramètres est chargé dans une classe ParametreProgramme, dont les 5 propriétés ReadOnly permettent de lire les valeurs des champs énumérés ci-dessus.
Un programme pouvant avoir plusieurs paramètres, une classe Programme fournit une propriété ParametresProgramme qui est une collection de ParametreProgramme.
Chaque programme appelle la dll pour lire ses paramètres. Il pourrait bien sûr recevoir systématriquement une valeur String, à charge pour lui de convertir dans le type adéquat. Je préfèrerais que ce soit la dll qui fasse la conversion, pour renvoyer soit un Integer, soit un String, soit un Char, etc. en fonction de son type. Problème, VB2005 refuse de surcharger une propriété dont seuls les types de retour sont différents. Je pourrais multiplier les propriétés : ValueInteger, ValueString, ValueChar, etc., mais c'est fastidieux, lourd et inélégant.