Gambas France BETA


Pas de compte ? Incription

Datasource et variable

Ce sujet est résolu.

12
AuteurMessages
lapenduledargent#1 Posté le 31/10/2011 à 08:45:02
Bonjour,

J'ai un data source qui m'affiche des données dans des datacontrols mais je souhaiterai récupérer une des données dans une variable sans passer par un datacontrol ?

Avec la méthode classique en code, j'ai pas de soucis mais comment faire avec un datacontrol ?

Bonne journée

Pierre
gambix#2 Posté le 31/10/2011 à 11:40:59
Faire simple !normalement :

1
2
3
Datasource.moveto(iLigne)

maval = Datasource[macle]
Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#3 Posté le 31/10/2011 à 18:25:22
Bonsoir Gambix

Je suis de retour...

1
2
3
Datasource.moveto(iLigne)

maval = Datasource[macle]


Le code que tu me proposes, c'est pas pour déplacer une donnée ?

Avec la méthode classique, sans datasource, je fais :

1
MaVariable = variable.hres!calibre
gambix#4 Posté le 31/10/2011 à 20:37:29
Faire simple !non
moveto c'est pour aller a l'enregistrement

et =datasource[] pour récupérer la valeur dans le champ cle

le data source lui se charge de faire du chargement en temp réel
en faite il ne charge jamais tout les resultats mais une partie
ça permet de naviguer dans de très grosses bases sans ralentissement.... bien sur la contre partie c'est le nombre de requête envoyé a la bdd
mais bon sur un monoposte ou un réseau limité c'est pas un pb ... c'est aussi une technique utilisé par access
Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#5 Posté le 1/11/2011 à 09:12:54
Bonjour Gambix,

J'ai encore des soucis :x

1
Datasource.moveto(iLigne)


iLigne --> c'est le champs id de la base, par exemple 1


1
maval = Datasource[macle]


maval --> la variable qui récupère la valeur du datasource
macle --> le nom d'un champs de le Bd, par exemple Machine

J'ai une erreur avec macle, il me répond "identificateur inconnu"

Pierre

lapenduledargent#6 Posté le 1/11/2011 à 09:40:59
En fait, c'est pour utiliser un RadioButton avec un datasource.

Bonne journée

Pierre
gambix#7 Posté le 1/11/2011 à 11:05:17
Faire simple !ben simplement
Datasource["monchamp"]

c'est un string que tu doit passer avec le nom du champ

fait gaffe moveto ne correspond pas a l'id mais au numéro de ligne c'est pas la même chose
Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#8 Posté le 1/11/2011 à 15:43:21
Bonjour Gambix,

Merci ça fonctionne maintenant !!!

Mais c'est dommage qu'il n'existe pas d'aide un genre d'aide mémoire avec des exemples. Mais vu le nombre de messages que je posts, je pense aider largement les autres novices en Gb.

Bonne soirée.

Pierre
gambix#9 Posté le 1/11/2011 à 21:40:48
Faire simple !marque le sujet comme résolu
Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#10 Posté le 1/11/2011 à 21:47:59
Presque...pour le contraire, tu as une idée ?

Je veux dire à partir d'une variable, l'enregistrer dans un Datasource ?

Pierre
gambix#11 Posté le 1/11/2011 à 22:11:19
Faire simple !bon c'est du backend :)

donc on va utiliser des fonctions cachées :

1
2
3
4
5
6
7
DIM hresult AS result

hresult = hsrc._EditCurrent()

hresult["monchamp"] = Value

hSrc._UpdateCurrent(hResult)



Avec ce code en plus les controles associé a ce datasource sont mis a jour :)

pour créer un nouvel enregistrement :
1
2
3
4
5
6
7
DIM hresult AS result

hresult = hsrc._CreateCurrent()

hresult["monchamp"] = Value

hSrc._UpdateCurrent(hResult)



Pour supprimer :
1
hSrc._DeleteCurrent()



ça doit marcher mais je n'ai pas testé

Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#12 Posté le 1/11/2011 à 22:34:30
Bonsoir Gambix,

Ca plante sur "hsrc", identificateur inconnu

C'est quoi hsrc ?

Bonne nuit

Pierre
gambix#13 Posté le 1/11/2011 à 23:08:40
Faire simple !hsrc c'est ton datasource pardi :)
Moins de texte dans une signature c'est agrandir son espace.
lapenduledargent#14 Posté le 2/11/2011 à 21:59:00
Bonsoir Gambix,

Ahh tout fonctionne :) :) :)

Merci mais d'où viennent tes sources ?

Pierre
gambix#15 Posté le 2/11/2011 à 22:28:03
Faire simple !10 ans de dev avec gambas ... + le code source de datasource lui même

présent dans trunk/comp/src/gb.db.form
Moins de texte dans une signature c'est agrandir son espace.
12