Bonjour,
Bien que mon problème soit apparamment du domaine des bases de données, je pense que je suis dans le bon forum...
Donc, j'ai une Dll qui affiche une boite de dialogue qui récupére un texte de l'utilisateur et qui vérifie que celui-ci existe dans une des tables de la base de donnée. (Access 2003)
La fonction utilisée est la suivante:
Sous cette forme, lorsque la fiche fait le locate sur la Tadotable (tblpersogene) contenue dans le Tdatamodule (Moedm), ça plante!
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
16
17
18
19
20 procedure TSiwah.IdEditExit(Sender: TObject); begin EuIdent:=''; if (IdEdit.Text<>'') then try // DmSwitchOn(PwdDm); //MoeDm.TblPersoGene.DisableControls; EuIdent:=IdEdit.Text; if not (MoeDm.TblPersoGene.Locate('CompNb', IdEdit.Text, [loPartialKey])) then Messagedlg('Unknown ID. Please, check it again', mtwarning, [mbok], 0) else NameEdit.Text:=MoeDm.TblPersoGene.Lookup('Compnb', IdEdit.Text, 'Name'); finally //PwdDm.TblMasterKey.EnableControls; end; end;
Si j'utilise la même configuration mais en insérant directement un TAdoconnection et un Tadotable dans la fiche ça marche correctement!
Je n'arrive pas à comprendre pourquoi!
Pour les pointilleux:
@NoisetteProd :
- L'ensemble des fonctions qui initialisent et connectent mon module de donnée et ses composants ont été testés et fonctionnent correctement.
- Dans la même fiche, un composant dbDgrid affichant la même table, focntionne parfaitement.
- A toutes fins utiles, l'unité FastSharemem a été rajouté en tête du Uses, sans amélioration.(retirée depuis pour cause de compatibilité avec C++)
- Les essais ont été menés alternativement avec des connexions "Jet 4.00" et "ODBC" sans amélioration de résultat.
L'un d'entre vous aurait-il une idée pour solutionner mon probléme?
- Sur le forum, j'ai trouvé cette file de discussion mais elle n'apporte rien de nouveau...
- J'ai rien trouvé dans la FAQ
- Y'a rien sur Google
- Rien dans les sources
Merci d'avance,
Cordialement,
Hauwke
Partager