2009-05-09 6 views
0

Dans mon application Delphi7, je peux me connecter à la base de données en étant connecté en tant qu'administrateur ("Dave"), mais pas en étant connecté en tant qu'utilisateur standard ou limité ("Paris"). Happens on XP Accueil & Vista Business Ultimate 64. J'utilise un alias pour le db. La base de données est Firebird, le middle-ware est IBO 4.7.Tuer le fantôme du BDE

J'ai posté cela dans un autre fil, mais sachez que j'ai beaucoup plus d'informations, il semble que le BDE est le problème. Apparemment, le DB.Pas est lié. Je peux le voir dans le fichier project.map, & l'exe lit le Registre pour obtenir l'alias BDE.

J'ai supprimé toutes les sources connexes BDE & fichiers dcu, j'ai cherché le projet de manière exhaustive pour un composant DB & il est propre.

Quelqu'un a-t-il été là?

+3

Notez que DB.pas n'est pas le BDE! BDE est lié par dbtables.pas. –

Répondre

3

Juste pour mentionner l'évidence, avez-vous aussi vérifié toutes les clauses USES?

Et ce n'est pas Db.pas que vous devez vous inquiéter, je ne suis pas familier avec IBO mais je pense qu'il utilise aussi Db.pas (TDataSet, TDatasource).

Vous devrez rechercher l'unité DbTables et les composants dans cet élément. Il contient une variable de session globalement déclarée et instanciée. Et TSession liens vers le BDE.

+0

En effet. Nous utilisons les composants ADO, mais souvent ajouter DB.Pas ainsi que TDataSet y est défini. Il ne fait pas partie de BDE (mais est utilisé par BDE) –

4

En supposant que vous ne construisez pas avec des paquets - supprimez db.pas et db.dcu du disque (renommez-les en db! .pas et db! .dcu, par exemple) et reconstruisez. Le compilateur doit s'arrêter là où la base de données est référencée.

+1

Vous devrez peut-être utiliser le CommandLine pour compiler, le concepteur peut également s'appuyer sur Db.pas. –

+0

Designer est compilé en packages et ne devrait pas affecter la compilation. – gabr

1

Je l'ai résolu avec votre aide. Premier gabr recommandé, je supprime le .dcus. J'ai eu, mais en ai trouvé quelques-uns, y compris db.dcu. L'a tué. Maintenant, la compilation s'arrête à l'utilisation de IB.dcu (interface de Borlands à Interbase). Tué, & a obtenu une compilation. Grepped pour DB dans le .map - pas présent. Cela ne fonctionnerait toujours pas comme Paris, donc j'ai trouvé un commentaire Jason dans les sources qui a révélé que la propriété AliasName de TConnection était pour l'alias BDE, pas l'alias FireBird, donc j'ai mis la propriété à vide.

Ran l'exe sous Paris & cela a fonctionné !. Maintenant, je dois vous dire que j'avais pris cette maison pour le week-end, en espérant un peu de concentration. Quand ça a marché, j'ai crié BLOODY BONZER! au sommet de ma voix - & tous les trois chats ont plongé & caché. "IB", - 3 caractères dans 700 mille lignes de code!

Donc, si quelqu'un est hanté par ce fantôme, grep pour IB!

Merci les gars (filles?) - comment puis-je vous créditer la meilleure réponse?

Merci, Dave.

+1

Choisissez la réponse qui vous a le plus aidé et cliquez sur le bouton Accepter. Il aide en tamisant les questions «répondues» et «non répondues». –

Questions connexes