soit une classe cSociete où les membres correspondent aux champs de ma table
société. J'ai une méthode Get(iIDSociete) dans la classe cSocieteControleur
(classe permettant l'ajout, la modif et la suppression) qui me remplit
l'objet en faisant un SELECT sur l'ID, cette méthode me retourne un objet
cSociete remplit, lorsque j'affecte mes champs de saisie membre à membre
seuls les champs de type numériques se remplissent, tous les champs de type
chaine sont retournés à blanc. Lorsque j'exécute pas à pas ma méthode mon
objet est bien remplit avec les bonnes valeurs, c'est lorsque je fais
GoSociete = GoSocieteControleur.Get(SAI_ID_SOCIETE) que les valeurs
disparaissent !!
"I.G.LOG" a écrit dans le message de news: 486241b5$0$882$
Normal qu'il se vide ! oSociete est déclaré local à la méthode :Get(), il sera détruit à la fin de la fonction !!! C'est pour ça que je te disais d'instancier directement la classe mère:
GoSociete:Get("SAI_ID_SOC)
// Méthode get FUNCTION Get(iID est un entier sur 8 octets)
sRequete est une chaîne sNomRequete est une chaîne = DonneIdentifiant()
// oSociete est objet cSociete // Ne pas passer par cet objet, il est local !!! i est un entier = 1 sRequete = "SELECT "+... "erp_societe.id,"+... "erp_societe.FK_id_erp_type_societe,"+... ... "FROM erp_societe "+... "WHERE erp_societe.id = "+iID SI SQLExec(sRequete,sNomRequete) ALORS TANTQUE SQLAvance(sNomRequete) = 0 :id = SQLLitCol(sNomRequete,i);i++ ... FIN FIN SQLFerme(sNomRequete) RENVOYER vrai // ou faux par exemple
Merci à tous les deux, j'ai compris l'erreur !
"I.G.LOG" <iglog@free.fr> a écrit dans le message de news:
486241b5$0$882$ba4acef3@news.orange.fr...
Normal qu'il se vide !
oSociete est déclaré local à la méthode :Get(), il sera détruit à la fin
de la fonction !!!
C'est pour ça que je te disais d'instancier directement la classe mère:
GoSociete:Get("SAI_ID_SOC)
// Méthode get
FUNCTION Get(iID est un entier sur 8 octets)
sRequete est une chaîne
sNomRequete est une chaîne = DonneIdentifiant()
// oSociete est objet cSociete // Ne pas passer par cet objet, il
est local !!!
i est un entier = 1
sRequete = "SELECT "+...
"erp_societe.id,"+...
"erp_societe.FK_id_erp_type_societe,"+...
...
"FROM erp_societe "+...
"WHERE erp_societe.id = "+iID
SI SQLExec(sRequete,sNomRequete) ALORS
TANTQUE SQLAvance(sNomRequete) = 0
:id = SQLLitCol(sNomRequete,i);i++
...
FIN
FIN
SQLFerme(sNomRequete)
RENVOYER vrai // ou faux par exemple
"I.G.LOG" a écrit dans le message de news: 486241b5$0$882$
Normal qu'il se vide ! oSociete est déclaré local à la méthode :Get(), il sera détruit à la fin de la fonction !!! C'est pour ça que je te disais d'instancier directement la classe mère:
GoSociete:Get("SAI_ID_SOC)
// Méthode get FUNCTION Get(iID est un entier sur 8 octets)
sRequete est une chaîne sNomRequete est une chaîne = DonneIdentifiant()
// oSociete est objet cSociete // Ne pas passer par cet objet, il est local !!! i est un entier = 1 sRequete = "SELECT "+... "erp_societe.id,"+... "erp_societe.FK_id_erp_type_societe,"+... ... "FROM erp_societe "+... "WHERE erp_societe.id = "+iID SI SQLExec(sRequete,sNomRequete) ALORS TANTQUE SQLAvance(sNomRequete) = 0 :id = SQLLitCol(sNomRequete,i);i++ ... FIN FIN SQLFerme(sNomRequete) RENVOYER vrai // ou faux par exemple