Précédent   Forum des professionnels en informatique > Autres langages > Pascal > Lazarus
Lazarus Forum d'entraide sur Lazarus, l'EDI RAD multiplateforme basé sur Free Pascal
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 09/11/2008, 11h10   #1
Candidat au titre de Membre du Club
 
Homme Eric
Inscription : octobre 2008
Messages : 66
Détails du profil
Informations personnelles :
Nom : Homme Eric

Informations forums :
Inscription : octobre 2008
Messages : 66
Points : 14
Points : 14
Par défaut Contourner l'erreur Database not assigned

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

Dernière modification par Alcatîz ; 07/12/2008 à 14h30.
weberick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2008, 12h15   #2
Membre Expert
 
Avatar de chris37
 
Homme
Directeur des systèmes d'information
Inscription : juillet 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 43
Localisation : France

Informations professionnelles :
Activité : Directeur des systèmes d'information
Secteur : Finance

Informations forums :
Inscription : juillet 2007
Messages : 376
Points : 1 407
Points : 1 407
Bonjour Eric,

Envoi moi ton source sur Gmail, je regarde cela ce soir et te répondrai via le forum

NOTA:
Il vaut mieux piloter depuis une procédure de connexion la propriété active des dataset. Tu gardes comme cela la main sur le chargement des données. J'ai eu le même soucis que toi...

Cordialement,
Chris
chris37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2008, 17h49   #3
Candidat au titre de Membre du Club
 
Homme Eric
Inscription : octobre 2008
Messages : 66
Détails du profil
Informations personnelles :
Nom : Homme Eric

Informations forums :
Inscription : octobre 2008
Messages : 66
Points : 14
Points : 14
Bonjour

Je vais appliquer cette méthode sans activer les TsqlQuery je viens de faire un test et ça à l'air fonctionel.

Citation:
=weberick

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;

Eric
weberick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2008, 19h35   #4
Candidat au titre de Membre du Club
 
Homme Eric
Inscription : octobre 2008
Messages : 66
Détails du profil
Informations personnelles :
Nom : Homme Eric

Informations forums :
Inscription : octobre 2008
Messages : 66
Points : 14
Points : 14
Bonsoir,

Encore un revirement ...

Finalement en utilisant le tdbedit avec un dataset et un tsqlquery activé en cours d'éxécution tout se passe bien.


Eric
weberick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2008, 19h35   #5
Membre Expert
 
Avatar de chris37
 
Homme
Directeur des systèmes d'information
Inscription : juillet 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 43
Localisation : France

Informations professionnelles :
Activité : Directeur des systèmes d'information
Secteur : Finance

Informations forums :
Inscription : juillet 2007
Messages : 376
Points : 1 407
Points : 1 407
Tu peux parfaitement conserver les dbedit et piloter a volonté la propriété .active des dataset. Cela fonctionne très bien

Tu nous tiens au courant
chris37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 12h10.


 
 
 
 
Partenaires

Hébergement Web