Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Autres langages > Pascal > Lazarus

Lazarus Forum d'entraide sur Lazarus, le RAD de FreePascal, à la poursuite de Delphi

Réponse
 
Outils de la discussion
Vieux 09/11/2008, 11h10   #1 (permalink)
Futur Membre du Club
 
Date d'inscription: octobre 2008
Messages: 38
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
Vieux 09/11/2008, 12h15   #2 (permalink)
Membre du Club
 
Date d'inscription: juillet 2007
Localisation: Tours (France - 37)
Âge: 40
Messages: 88
Par défaut

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
Vieux 09/11/2008, 17h49   #3 (permalink)
Futur Membre du Club
 
Date d'inscription: octobre 2008
Messages: 38
Par défaut

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
Vieux 09/11/2008, 19h35   #4 (permalink)
Futur Membre du Club
 
Date d'inscription: octobre 2008
Messages: 38
Par défaut

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
Vieux 09/11/2008, 19h35   #5 (permalink)
Membre du Club
 
Date d'inscription: juillet 2007
Localisation: Tours (France - 37)
Âge: 40
Messages: 88
Par défaut

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
NEWS PASCALF.A.Q PASCALTUTORIELS PASCALSOURCESCOMPILATEURSOUTILSLIVRES

Réponse

Précédent   Forum des développeurs > Autres langages > Pascal > Lazarus



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide