2009-02-10 5 views
1

Je suis assez perplexe ... J'ai 5 ordinateurs de test différents, toutes des machines Windows XP relativement vierges exécutant des spécifications matérielles similaires. Je lance une installation silencieuse de la base de données FireBird (Classic) et de mon application. Certains ordinateurs nécessitent "localhost:" (ou 127.0.0.1) avant l'emplacement de la base de données pour établir une connexion, et certains ne fonctionnent tout simplement pas du tout! Cela fonctionne exactement le même logiciel dans tous les domaines. Quelqu'un at-il des suggestions sur ce qui doit arriver pour rendre la chaîne de connexion universelle, ou ce que je pourrais faire mal?Plusieurs machines exécutant le même logiciel, certaines ne se connecteront pas à firebird

Il est la version firebird 2.1.1.17910 classique

Par ailleurs, je l'ai essayé la connexion à la même base de données en utilisant FlameRobin (un petit outil de gestion db) et cela a fonctionné très bien sur les ordinateurs qui ne sont pas connectés.

Plus d'informations nécessaires juste faites le moi savoir! Merci beaucoup à l'avance

Répondre

3

Pour toute référence future, la réponse est dans les services. Apparemment, il n'est pas enregistré comme service pour quelque raison que ce soit, et sur les ordinateurs de travail, il a été enregistré à un moment donné, probablement par le biais de tests plus lointains d'Interbase. C: \ Windows \ System32 \ drivers \ etc et l'ouverture du fichier 'services' et en ajoutant la ligne suivante permet au serveur de fonctionner correctement.

gds_db 3050/tcp

+0

En outre, en utilisant certaines méthodes de connexion via C++, (Pour moi: DBExpress dans Borland C++ Builder), en particulier en utilisant la connexion Interbase héritée Les méthodes peuvent fonctionner avec FB, mais si elles utilisent GDB32.dll au lieu de fbclient.dll, il y a de bonnes chances pour certains problèmes géniaux. – Cyprus106

1

Je ne sais pas si vous êtes conscient de cela, mais une chaîne de connexion sans "localhost:" ou "127.0.0.1:" devant le nom de la base de données ou l'alias utilisera le protocole local , qui ne peut pas être utilisé lors de la connexion à Firebird Classic Server (voir this link pour plus d'informations). Si un nom d'hôte ou une adresse IP est indiqué, le port TCP 3050 sera utilisé pour la connexion.

Si vous avez enregistré un serveur dans FlameRobin et que vous n'avez pas laissé le champ hostname dans la boîte de dialogue d'enregistrement vide, le nom d'hôte fera partie de la chaîne de connexion. Cela expliquerait pourquoi vous pouvez vous connecter en utilisant FlameRobin. En ce qui concerne les différences entre les machines: Vous devez d'abord aller dans l'applet Firebird Server Manager et vous assurer que le serveur fonctionne bien sur toutes les machines et que la version est la même.

+0

C'est la même version et le serveur fonctionne. Dans FlameRobin, j'ai nommé le nom d'affichage et le nom d'hôte localhost. Laisser le nom d'hôte vide semblait toujours fonctionner correctement. Le fichier de base de données est local. J'ai essayé w/o 'localhost' et juste le chemin, il a bien fonctionné sur les machines de travail. pas déjà sur non-funct. – Cyprus106

+0

Pouvez-vous vous connecter en utilisant isql sur les machines non-fonctionnelles? De même, existe-t-il des messages d'erreur dans le fichier firebird.log (répertoire d'installation FB) ou dans les entrées du journal des événements Windows? – mghie

1

Cela a-t-il quelque chose à voir avec le fichier hosts sur certains ordinateurs? Ou est-ce que vous faites référence à vos

Certains ordinateurs ont besoin « localhost: » (ou 127.0.0.1) avant l'emplacement de base de données ...

commentaire?

+0

Je ne sais pas. ceux qui fonctionnent ne nécessitent même pas localhost, juste le chemin vers le fichier db local. – Cyprus106

Questions connexes