Recuperer l'identifiant

Résolu
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 - 23 avril 2004 à 22:48
orion76 Messages postés 1 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 26 juillet 2004 - 26 juil. 2004 à 16:28
Bonjour,

Voila j'ai un p'tit stress.... pouvez vous m'aider !

J'ai une table avec dedans mes contacts, nom prenom etc....

je me suis connecte avec ado et je liste toute la table ds un dbgrid jusque la tout fonctionne parfaitement !

Bon j'aimerais maintenant que qd je suis sur une ligne du dbgrid ET SI je clique sur un speedbutton qu'il m'ouvre une nouvele page (fouvre) page de details en fait => correspondant a la ligne!!!!

j'ai trouve un code fonctionnant mais j'essaye de l'adapter et je n'y arrive pas!

il plante et me dit

provoque une classe d'execption econverterror avec convertion de type variant incorrecte !!!

Ouais pas tres comprehensible ce message la !

Bon j'ai execute le programme pas a pas et il s'arrete a la ligne
fouvre.free;
voici le code complet qu'en penses vous?!

JE VOUS REMERCIE

Bon week end a tous...
action declenche qd je clique sur le boutton devant m'afficher le details

procedure TFprimo.xOuvreClick(Sender: TObject);
var //decl variable pour localiser la ligne de la grille
ouSuisje: TBookMarkStr;
begin
//creation de la fiche avec passage de parametre
fouvre := Tfouvre.create(self);
try
fouvre.param(dbgridclient.Fields[0].value);
finally
fouvre.free;
end;
//recuperation de la ligne, reouverture de la connec
ouSuisje :=adotableclient.bookmark;
adotableclient.close;
adocnx.close;
adocnx.open;
adotableclient.open;
adotableclient.bookmark := OuSuisje;
end;

1 réponse

orion76 Messages postés 1 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 26 juillet 2004
26 juil. 2004 à 16:28
le probleme se situe precisement ici :

fouvre.param(dbgridclient.Fields[0].value);

tu dois trouver de kel type et param ( Integer, string .. ) et lui passer le parametre dejà transtypé.

fouvre.param(dbgridclient.Fields[0].asstring);
ou
fouvre.param(dbgridclient.Fields[0].asinteger);

ce probleme viens du fait que si ton champ dbgridclient.Fields[0].value retourne nil (champ vide dasn la base) l'application ne sait pas comment caster cette expression puisque ne connait pas le type attendu. Si tu transtype en integer nil donne ""(chaine vide) si c'est en integer ca te donne 0 etc ...

de plus petit conseil evite d'utiliser l'indice de colonne pour te reparer dasn le tableau car si l'utilisateur deplace la collone tu n'iras pas lire la bonne.

Utilise plutot le nom de la colonne (dans la base)

dbgridclient.Fields.FieldByName("nom_col").value;
3
Rejoignez-nous