Quel est le login/mot de passe associé à ta base de donnée ?
Ou à défaut, peux-tu me donner la structure de ta table tTickets ?
Quel est le login/mot de passe associé à ta base de donnée ?
Ou à défaut, peux-tu me donner la structure de ta table tTickets ?
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème
Pas de sollicitations techniques par MP -
Ma table tTicket
idTicket Auto-incrémenté indexé
Dateticket Date
idCourse Numérique Secondaire
Voila les informations renseignées dans le dictionnaire des donnés.
Pour ce qui est du login/pass il n'y en a pas.
Merci de m'aider dans mon problème.
Désolé mais moi il me demande un mot de passe, peut-être que j'ai mal configuré le bizarre, il est vrai que j'utilise jamais ce système je passe toujours par ADO...
En tout cas dans ta requête tu utilises les noms de colonnes dateticket et idcourse alors que d'après ton post précédent la casse est différente. Et si met le nom des champs à la bonne casse, qu'est-ce que ça donne ?
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème
Pas de sollicitations techniques par MP -
Même problème. Sinon j'ai recréé la table en me disant peut-être un bug ou je ne sais quoi et c'est peut-être pour ça que la casse a changé entre deux.
Peux-tu rappeler l'erreur qu'il te renvoi (des fois qu'elle ait changée depuis) ?
En outre un moyen simple de vérifier les champs c'est de déposer un TTable que tu connectes à ta DB puis ta table. Ensuite tu doubles-cliques sur le composant et il t'ouvres l'éditeur de champs du composant. En faisant clic droit tu peux ensuite faire "Ajouter tout les champs" et il va te créer tout les champs qu'il trouve dans la table. Tu peux ainsi regarder les noms ainsi que les types attendus, etc...
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème
Pas de sollicitations techniques par MP -
Si j'indique le champ idCourse qui est un index secondaire dans mon code j'ai droit à nom de champ incorrect. Et si je ne fais pas cas de ce champ dans mon code quand je clique sur le bouton nouveau pari et si je clique par exemple 5 fois d'affilé sur le bouton il va m'ajouter un pari pour la course 1, 1 pour la course 2 etc jusqu'à 5.
J'ai essayé plein de trucs fait différents tests mais rien ne passe.
C'est très curieux que le champ idCourse se remplisse tout seul O_o, as-tu vérifié qu'il n'y a pas d'auto-inc de positionné également ?
Qu'est-ce que tu appelles exactement index secondaire ?
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème
Pas de sollicitations techniques par MP -
idCourse est un index secondaire créé sur idTicket comme demandé dans ma table de données.
http://djvlad.free.fr/dico.jpg
Voila le lien de mon dico des données si ça peut t'aider.
Euh quand tu dis "créé sur idTicket" tu me fais un peu peur là, normalement idCourse doit pointer vers idCourse de la table tCourses pas sur idTicket ?
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème
Pas de sollicitations techniques par MP -
Je suis complètement perdu. Dans ce cas dans la propriété masterfield je dois relier quels champs?
idCourse est une clé étrangère qui doit être une clé secondaire dans ma table tTickets. Enfin c'est comme ça que je le lis sur mon dico.
C'est aussi comme ça que je le lis. Maintenant je ne sais vraiment pas si on peut définir de vraies contraintes d'intégrité avec Paradox ou pas. Peut-être en essayer de l'enlever, peut-être en essayant de désactiver la relation maître détail (puisque tu as dis qu'il y en avait une) et tester voir ce que cela raconte.
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème
Pas de sollicitations techniques par MP -
re,
j'ai réessayer ton code et ca marche apres quelques modifs.
j'ai recréer la table tTickets avec tes trois champs.
j'ai recreer la table dans ton module de données.
j'ai refait les liens entre la table tCourses et tTickets(Master/details)
j'ai controler la requette SQL avec le respect de la casse des nom de champs.
j'ai ajouter un tTickets.refresh a la fin de la procedure du bouton 'Nouveau pari'
essaye...
voila...
A++++
Sans la relation maitre/détail ça ajoute des tickets sans les lier à une course ce qui semble logique, donc les tickets s'empilent dans ma dbgrid peu importe la course que je choisi.
Et le problème je le comprends mieux. En fait si je crée un premier ticket ça sera le ticket 1 et il se liera à la première course. Si j'en crée un deuxième ça deviendra le ticket 2 qui se liera à la deuxième course etc peu importe la course que je sélectionne auparavant mais ce ticket reprendra les infos de la course numéro deux si j'étais sur cet enregistrement et si c'est le ticket numéro 7 il se liera à l'enregistrement 7.
Je sais pas si ça peut aider. Et j'ai reuploadé mon programme parce qu'en fait suite aux nombreux changements y avait des objets qui étaient plus liés et ça pouvait prêter a confusion.
Merci de m'aider.
voila une version qui marche sous delphi 2006
j'espere que ca va t'aider.
les nom de champs change un peu mais ca fonctionne. a toi de faire les modifs
Pièce jointe 35002
@gui187 : il semble que ta pièce jointe ne soit pas valide, est-ce que tu pourrais la réuploader (à moins que Jenojen ait déjà pu la télécharger).
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème
Pas de sollicitations techniques par MP -
bonjour,
la voila.
Je l'avait effacer hier soir
Hippodrome.rar
desolé,
A+++++
Merci pour tout gui et et Guymelef votre aide m'a vraiment fait beaucoup de bien. Tout fonctionne nickel maintenant.
J'ai une question maintenant.
Je dois pouvoir ajouter 3 chevaux à mes tickets pour faire les paris. Pour cela je dois double cliquer sur la dbgrid ou se trouvent les chevaux et ça doit ajouter automatiquement l'idcheval sur lequel porte le double clique à mon champ idcheval de ma table Parier.
En gros je dois récupérer l'idcheval qui est dans la ligne de la dbgrid ou je double-clique. Comment faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 with dm.queryExe do begin sql.clear; sql.add('insert into tparier (idcheval) values ('); sql.add(????????????????????????+')'); ExecSQL; sql.text:= 'select * from tcourses'; open; end;
Merci d'avance de vos réponse.
Lorsque que tu clique ou que tu te déplace sur une grille, l'enregistrement courant au niveau du DataSet rattaché au DataSource de ta grille devient l'enregistrement sur lequel tu es positionné.
Donc si tu te positionne sur le double-clic de la grille et que tu interroge le DataSet associé, la valeur du champ idCheval correspond à la valeur de la ligne double-cliqué.
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème
Pas de sollicitations techniques par MP -
Ok merci pour ta réponse.
J'ai donc tenté ça + la ligne qui est en commentaire mais j'ai droit à: Type incompatible sur la ligne avec le quotedstr mais je ne comprend pas pourquoi les types sont incompatibles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 procedure Tgestionparis.dbChevauxDblClick(Sender: TObject); var truc:integer; begin truc:=dm.tParticiper.fieldbyname('idcheval').asinteger; with dm.queryExe do begin sql.clear; sql.add('insert into tparier (idcheval) values ('); sql.add(truc)+')'; // sql.add(quotedstr(inttostr(truc)))+')'; ExecSQL; sql.text:= 'select * from tcourses'; open; end; end;
Merci de me répondre.
Premièrement tu ne dois appeler QuotedStr (donc en gros doubler les ' et entourer la chaîne avec des ') ne doit être fait que pour des valeurs à placer dans des colonnes qui attendent réellement une chaîne.
Donc ici, vu que le type attendu est un entier, il n'est pas nécessaire d'utiliser QuotedStr. Tu peux donc écrire directement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 procedure Tgestionparis.dbChevauxDblClick(Sender: TObject); begin truc:=dm.tParticiper.fieldbyname('idcheval').asinteger; with dm.queryExe do begin sql.clear; sql.add('insert into tparier (idcheval) values ('); sql.add(dm.tParticiper.fieldbyname('idcheval').asString + ')'; ExecSQL; sql.text:= 'select * from tcourses'; open; end; end;
La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème
Pas de sollicitations techniques par MP -
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager