Recuperer l'identifiant [Résolu]

cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 23 avril 2004 à 22:48 - Dernière réponse : orion76 1 Messages postés lundi 20 octobre 2003Date d'inscription 26 juillet 2004 Dernière intervention
- 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;
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
orion76 1 Messages postés lundi 20 octobre 2003Date d'inscription 26 juillet 2004 Dernière intervention - 26 juil. 2004 à 16:28
3
Merci
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;

Merci orion76 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de orion76

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.