Divers pb

Signaler
Messages postés
4
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
18 août 2006
-
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006
-
bonjour tous le monde

En réalité j'ai quelques soucis à exposer :



j'aimerai savoir est ce que c'est possible de faire un contrôle sur Tedit pour vérifier durant la saisi :


1er : n'autorise qu'un seul type de donnée a être saisi exemple : autorise uniquement les chiffre ou bien certain caractère ou uniquement les lettres.


2ème : Ne donner la possibilité de saisir qu'une longueur précise au maximum.






est il possible de savoir si une Tform est ouverte malgre qu'elle n'est pas visible sur l'écran, c'est-à-dire cache par une autre Tform.






est ce que c'est possible de charger des données à partir d'une Tdbgrid vers une Tform qui est fermée c'est-à-dire si je clique sur un enregistrement des données précise sont affecte dans des Tedit de la dite Tform, soit qu'elle soit appeler par ce double clique, ou bien elle est cache dernier la Tform contenant la Tdbgrid en question.






J'essai de réalisé une application de gestion de bibliothèque, je rencontre un problème pour affiche le contenue d'une table dans le Tdbgrid.


J'utilise comme système d'exploitation le WindowsXP™. Pour Delphi™, j'ai la version 6 édition entreprise, en ce qui concerne Interbase j'utilise la version livre avec Delphi™ 6.


J'utilise une data module sur la quel j'ai mis une Datasource (DS_lec) pour la table lecteur, relier a un composant IBQuery (IB_Qry_lec) un composant IBTransaction et IBDataBase sur le quel est branche IB_Qry_lec


Mon code est le suivant :





F_Dm.IB_DB_biblio.params.text:='user_name=SYSDBA'+#13


+'password=masterkey';


F_DM.IB_Db_Biblio.Open;


F_Dm.IB_Trans.active:=true;


F_Dm.IB_Qry_Lec.close;


F_Dm.IB_Qry_lec.SQL.Clear;


F_Dm.IB_Qry_Lec.SQL.Add('SELECT * ');


F_Dm.IB_Qry_Lec.SQL.Add('FROM LECTEUR');


F_Dm.IB_Qry_Lec.open;


f_Dm.IB_trans.active:=false;


F_Dm.IB_Db_Biblio.Close;





Mais malheureusement je ne sait pas pourquoi le grille (dbgride) reste vide pourtant je l'ai relié avec DataSource, j'ai renseigné les colonnes en ce qui concerne FiledName.





Merci d'avance a tous ce qui se sont donnée la peine de lire mon message


.

2 réponses

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
j'aimerai savoir est ce que c'est possible de faire un contrôle sur Tedit pour vérifier durant la saisi :
1er : n'autorise qu'un seul type de donnée a être saisi exemple : autorise uniquement les chiffre ou bien certain caractère ou uniquement les lettres.
2ème : Ne donner la possibilité de saisir qu'une longueur précise au maximum.


1 >> dans l'événement OnKeyPress du Edit, mets le code suivant :
If Not (Key In #8,#13,'0'..'9','a'..'z','A'..'Z') Then Key:=#9;
il autorise les chiffres et les lettres. A toi de modifier ensuite pour ton usage personnel
2 >> mets le nombre de caractères maximum dans la propriété "MaxLength" du Edit


=======================================================


est il possible de savoir si une Tform est ouverte malgre qu'elle n'est pas visible sur l'écran, c'est-à-dire cache par une autre Tform.


essaye de repérer la fenêtre avec son nom :
var
H : THandle;
begin
H := FindWindow(nil,'nom de la fenêtre');
if H <> 0 then ShowMessage('La fenêtre est ouverte')
end;


=======================================================


est ce que c'est possible de charger des données à partir d'une Tdbgrid vers une Tform qui est fermée c'est-à-dire si je clique sur un enregistrement des données précise sont affecte dans des Tedit de la dite Tform, soit qu'elle soit appeler par ce double clique, ou bien elle est cache dernier la Tform contenant la Tdbgrid en question.


c'est possible, pourvu que la fenêtre ait été crée au départ.


=======================================================


Pour la table, je ne peux pas te répondre...
Possédant la version 6 perso de Delphi, je ne peux pas manipuler de BDD, c'est bien dommage d'ailleurs.....

@+
Bonne Prog'
Nico


<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006

Pout ton problème de query, tu as fermée la transaction juste après avoir ouvert le query.

Si il n'y a pas de transaction ouverte entre ton application et le serveur, ton query ne sait pas communiquer.



Je te conseille ceci :

1. Télécharger la dernière version d'Interbase Express 6.08 (pour delphi6);

2. Chaque query, dataset, ... doit avoir sa transaction propre, comme
cela tu ne te mèles pas les pinceaux en femant une transaction qui
comprend plusieurs query.

3. Dans les events BeforeOpen et AfterClose des dataset, place les codes suivants :



On suppose que ton TIBQuery, nommé sql1, est lié à
une transaction TIBTransaction, nommée, trans_sql1. Et que la propriété
database du query et defaultdatabase de la transaction pointe sur
la même base de données.



Dans le beforeopen tu places le code :

if not trans_sql1.intransaction then trans_sql1.Starttransaction;



Dans le afterclose tu places le code :

if trans_sql1.intransaction then trans_sql1.commit;



Toujours vérifier que la transaction est active ou pas pour l'activer ou la fermer au sinon => exception



Va lire l'article de Borland à l'adresse
http://community.borland.com/article/0,1410,27653,00.htm et tu
apprendras d'autres astuces


Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans