Bonjour,
Le post suivant indique que lorsqu'un TSQLQuery est actif il en résulte une erreur à la compilation.
http://mantis.freepascal.org/view.php?id=11946&nbn=3
Alors je vais encore vous demander conseil.
Objectif réaliser une fenêtre de recherche et de saisie d'un enregistrement.
Sont posés sur la form :
Partie recherche d'un enregistrement (formulaire de recherche sur <> champs) :
un TSqlQuery pour la recherche nommé sql_benef_rec : actif false il est initialisé et activé lors de l'action recherche
un Tdatasource ds_benef_rec lié au tsqlquery sql_benef_rec et un dbgrid db_grid_benef lié au datasource ds_benef ce dbgrid permet de sélectinner le bon enregistrement si il y a des doublons sur le nom.
le tsqlquery est relié au tmysqlconnection de la form principale.
Jusque là pas de problème pas d'erreur à la compilation et mon formulaire de recherche fonctionne.
Sont ensuite posés sur la form les champs pour l'affichage de l'enregistrement sélectionné :
un tsqlquery nommé sql_benef_gestion, un datasource ds_benef_gest des dbEdit db_ed_nom, db_ed_prenom et un DBnavigator appelé db_nav_gest_benef .....
Les valeurs suivantes sont renseignées en dur dans l'inspecteur de propriétés :
Tsql_benef_gestion.SQL := 'Select * from benef';
Tsql_benef_gestion.Active:=True;
ds_benef_gestion.DataSet:=sql_benef_gestion;
db_ed_nom.Datasource:=ds_benef_gestion;
db_nav_gest_benef.Datasource:=ds_benef_gestion;
cela permet d'avoir la liste des champs dans le combobox db_ed_nom.DataField.
Cette configuration ne fonctionne pas à la compilation. Elle me semblait sympa car elle me permettait alors d'utiliser les fonctionalités du composant Dbnavigator et d'avoir la liste des champs de ma table disponible dans le comboBox datafields du composant dbedit.
Que vaut-il alors mieux faire ?
Ne pas activer le TSqlquery, renseigner la valeur de tsqlquery.sql utiliser des TEdit au lieu de DBedit et passer par une routine d'affectation exemple :
Procedure affichage de l'enregistrement
ed_nom.text:= sql_benef_gest.FieldByName('bnf_nom').AsString;
ed_prenom.text:= sql_benef_gest.FieldByName('bnf_prenom').AsString;
Je suis un peu dans le doute car ne pas utiliser dbnavigator m'oblige à tester la modification des Tedit etc... je ne peux plus bénéficier des avantages du dbnavigator.
Merci de vos réponses.
Eric
Partager