2010-12-04 43 views
1

J'installe Firebird (version 1.5.5 - je sais que c'est ancien mais cela fonctionne) sur un nouvel ordinateur qui exécute Windows 7. J'ai installé la version classique du serveur en tant que service. Selon la documentation sur le site Firebird, j'ai modifié le fichier firebird.conf afin que IPCName soit global \ FirebirdIPI; Je l'ai fait pendant que le service ne fonctionnait pas.Impossible d'exécuter Firebird

Malgré tous mes efforts, j'ai été incapable d'accéder à l'une des bases de données que j'ai copiées sur ce nouvel ordinateur via ISQL. FWIW, le programme gestionnaire EMS SQL 2005 réussit à accéder aux bases de données, mais ce programme a apparemment une méthode directe qui ne nécessite pas fbclient.dll.

Quoi d'autre dois-je vérifier?


Mise à jour à partir de quelques jours plus tard. Après avoir perdu beaucoup de temps avec Windows 7, nous avons décidé de rétrograder l'ordinateur et de lancer XP. Après avoir installé la version superserver de FB 1.5.5, je peux exécuter mes programmes et accéder aux bases de données qui sont stockées sur cet ordinateur. Les tentatives d'accès aux bases de données à partir d'autres ordinateurs connectés sur le réseau ont échoué avec une variété de messages d'erreur, mais normalement quelque chose comme 'Erreur d'E/S pour le fichier! Firebird! \ Db \ q400.fdb'. Afin de permettre aux personnes du réseau de continuer à accéder aux bases de données, j'ai relancé le serveur NT et démarré le service Firebird - et tous les programmes peuvent accéder à ces bases de données à partir d'ordinateurs distants!

Pour simplifier les choses, il y a trois ordinateurs sur le réseau:

  1. le serveur NT ('de zorcomp'), qui exécute le service Firebird; les fichiers fdb résident sur cet ordinateur dans un répertoire appelé 'db' qui se trouve sous un répertoire partagé appelé 'firebird'
  2. un ordinateur exécutant XP, appelé 'kivserver', qui possède également un répertoire partagé appelé 'firebird' et en dessous un répertoire appelé "programmes". Les copies de tous les fichiers fdb résident dans un répertoire appelé 'db'.
  3. un ordinateur exécutant XP, qui mappe \ zorcomp \ firebird sur le disque L: et \ kivserver \ firebird sur le disque T. Depuis cet ordinateur, je peux exécuter un programme dans T: \ programs et l'obtenir pour accéder à un fichier assis dans L: \ db. Si j'arrête le service FB sur zorcomp et démarre le même service sur kivserver, le même programme ne peut pas accéder aux fichiers placés dans T: \ db.

J'espère que c'est assez clair. Pour la vie de moi, je ne peux pas voir de différence entre tous les fichiers qui résident dans \ kivserver \ firebird et ceux qui sont dans \ zorcomp \ firebird - mais il y a une différence!

Évidemment, je ne veux pas que cet arrangement continue - le serveur NT doit être retiré honorablement.

Modification supplémentaire. J'ai maintenant le serveur firebird fonctionnant sur 'kivserver' (NT). Je peux accéder aux fichiers de la base de données localement.

Les ordinateurs exécutant Win7 peuvent désormais accéder à ces fichiers de base de données en utilisant une chaîne de connexion \\ kivserver \ firebird \ db \ database.fdb.

Les ordinateurs exécutant XP ne peuvent pas accéder à ces fichiers de base de données, bien que IIRC wisql ait réussi avec \\ kivserver \ firebird \ db \ database.db.

Le serveur NT a été déconnecté du réseau. TIA, No'am

+0

Malgré ma réponse, je veux dire que j'utilise Firebird 2.1 dans Windows 7 et que je n'ai jamais rien touché pour le faire fonctionner ... êtes-vous sûr de vouloir utiliser Firebird 1.5? Je suis sûr que vous pouvez ouvrir des fichiers Firebird 1.5 (ODS) directement avec Firebird 2, mais je n'ai personne à tester. – jachguate

+0

Ce que je veux vraiment, c'est que mes programmes (écrits en Delphi) puissent accéder aux bases de données. Ils utilisent un composant qui fonctionne avec Firebird 1.5. –

+0

@jachguate, bien que cela puisse fonctionner, il est préférable de ne pas ouvrir les fichiers ODS inférieurs avec des versions plus élevées de Firebird pour éviter d'éventuelles corruptions. La meilleure chose que vous pouvez faire est d'utiliser l'utilitaire gbak dans sa version 1.5 pour sauvegarder la base de données et le restaurer avec le gbak 2.0 pour obtenir un fichier de base de données 2.0. –

Répondre

0

Plusieurs mois plus tard, le serveur NT a été brusquement retiré lorsqu'il a affiché une 'erreur MBR' lors du redémarrage après que quelqu'un l'ait débranché par accident. Il ne me restait plus d'autre choix que de lancer le programme serveur Firebird sur 'kivserver'. Les problèmes de connexion sont retournés.

Finalement, j'ai pu résoudre le problème avec la chaîne de connexion suivante

10.0.0.202:e:\firebird\db\manager.fdb

où 10.0.0.202 est l'IP adresse du serveur, et e: \ firebird \ db le répertoire dans lequel se trouve la base de données, par rapport au serveur lui-même.

J'espère que quelqu'un d'autre, quelque temps, trouvera cette information utile.

0

AFAIK EMS SQL utilise fbclient.dll (ou un wrapper qui l'entoure).

Si la seule chose que vous voulez est d'accéder aux bases de données, je vous suggère de le faire en utilisant le protocole TCP au lieu du protocole local. Pour ce faire connecter comme ceci:

c:\>isql localhost:c:\path\to\db.fdb -u sysdba -p masterkey 

À moins que vous évitez TCP ou la machine ont pas d'interface locale activée, elle fera le travail pour vous.

0

Essayez d'utiliser ceci pour vous connecter à votre base de données:

nom d'hôte

: lecteur: \ chemin complet \ filename.fdb

ou

\ nom d'hôte \ lecteur \ chemin complet \ filename.fdb

Puis-je connaître le composant que vous utilisez?

+0

J'ai essayé cela hier sans succès. Lorsque vous utilisez la chaîne 't: \ db \ q400.fdb '(l'emplacement du fichier se trouve dans le répertoire' db 'du disque réseau mappé en' t 'sur l'ordinateur local), le message d'erreur était' Erreur d'E/S pour le fichier '\! firebird! \ db \ q400.fdb' . Lors de l'utilisation de la chaîne '\ kivserver \ firebird \ db \ q400.fdb' (ie \ nom_hôte \ lecteur \ chemin complet \ nom_fichier.fdb), le résultat était 'base de données inconnue'. J'essaie à la fois mes propres programmes (en utilisant des composants dbExpress) et un programme appelé 'mywisql' qui fait probablement la même chose. –

+2

@ Noam Newman: le fichier de base de données Firebird doit être local sur le serveur. C'est dans la documentation, je ne suis pas en mesure de le faire maintenant. – jachguate

0

Si vos clients sont Windows 7, vous pouvez essayer d'utiliser \\ nom d'hôte \ nom_partage \ filename.fdb au lieu de lecteur: \ filename.fdb chaîne de connexion.