IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

SQL server et Hyperfile : création et utilisation d'un linked server


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Par défaut SQL server et Hyperfile : création et utilisation d'un linked server
    Bonjour

    J'ai besoin de pouvoir requêter depuis SQL server sur une base qui est en HyperFile.

    Pour cela, j'ai (non sans difficulté) installé un HyperFile serveur, récupérer et installer une base de test, installer et configurer le driver ODBC.

    J'ai testé la connection ODBC depuis Excel, cela fonctionne bien, j'arrive à voir toute mes tables, mes champs etc...

    Je suis passé à l'étape suivante, la création d'un linked server sur SQL server (j'utilise du 2005).

    Je suis passé par l'interface de SQL server (Server Objects\Linked Servers\New Linked Server)

    et j'ai choisi comme paramètre :

    Provider = Microsoft OLE DB Provider for ODBC Drivers
    Product name = "MY_SYS_DSN"
    Data source = "MY_SYS_DSN"

    (MY_SYS_DSN) étant le nom de mon ODBC système.

    et c'est tout.

    Je ne sais pas si c'est suffisant ou pas en terme de configuration, c'est la 1ère fois que j'utilise les linked servers et je ne peux pas me faire aider du support Hyperfile car je n'utilise que HyperFile qui n'est pas sous license

    Quoiqu'il en soit, je n'arrive pas à utiliser le linked server.

    J'ai essayé bcp de syntaxe comme:

    Select * MyLinkedServer.NomBase.NomTable
    (avec crochet, double quote etc..)
    ou encore OPENQUERY (MyLinkedServer, 'Select * from NomBase.NomTable')
    qui me renvoit une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The OLE DB provider "MSDASQL" for linked server "MyLinkedServer" reported an error. The provider did not give any information about the error.
    Quelqu'un peut-il m'aider svp ?

    Merci beaucoup

  2. #2
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut
    L'utilisation de HyperFile est soumis à licence PC-Soft. Si vous n'avez pas de licence PC-Soft vous ne pouvez pas utiliser HyperFile à des fins de développement.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Par défaut
    il doit y avoir une erreur, Hyperfile SQL est gratuit, c'est indiqué sur le site de PCSoft.

    http://www.pcsoft.fr/accueilpub/hyperfilesql.htm

    Je précise que je ne fait pas de développement windev mais .NET et j'ai seulement besoin de récupérer des données d'une base hyperfile (plus précisément je souhaite rappatrier des données d'une base HyperFile vers SQL server et ensuite les traiter, je ne touche pas à la base HyperFile).

    (je fais ce développement dans un cadre professionnel et mon client utilise Hyperfile dans le cadre d'une application développée avec Windev avec Licence)

    Merci

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Par défaut
    Bonjour,

    Citation Envoyé par duffman Voir le message

    je fais ce développement dans un cadre professionnel et mon client utilise Hyperfile dans le cadre d'une application développée avec Windev avec Licence
    Il ne s'agit pas d'un développement basé sur HyperFile, mais seulement d'accéder à des données gérées par un logiciel développé avec WinDev.
    Donc il n'y a pas d'incompatibilité avec la licence HyperFile.

    Citation Envoyé par duffman Voir le message

    Je suis passé par l'interface de SQL server (Server Objects\Linked Servers\New Linked Server)

    et j'ai choisi comme paramètre :

    Provider = Microsoft OLE DB Provider for ODBC Drivers
    Product name = "MY_SYS_DSN"
    Data source = "MY_SYS_DSN"

    (MY_SYS_DSN) étant le nom de mon ODBC système.

    et c'est tout.

    Je ne sais pas si c'est suffisant ou pas en terme de configuration, c'est la 1ère fois que j'utilise les linked servers et je ne peux pas me faire aider du support Hyperfile [...]
    Il faudrait plutôt t'adresser au forum SGBD SQL Server.

    Citation Envoyé par duffman Voir le message

    J'ai essayé bcp de syntaxe comme:

    Select * MyLinkedServer.NomBase.NomTable
    (avec crochet, double quote etc..)
    ou encore OPENQUERY (MyLinkedServer, 'Select * from NomBase.NomTable')
    qui me renvoit une erreur
    En admettant que le code ci-dessous soit dans un dialecte HyperFile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OPENQUERY (MyLinkedServer, 'Select * from NomBase.NomTable')
    Il faudrait éviter de qualifier le nom de la table avec le nom de la base.

    Essaye plutôt ceci, pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OPENQUERY (MyLinkedServer, 'Select * from NomTable')
    _

  5. #5
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Par défaut
    Merci JBO pour ta réponse.

    J'ai testé sans le nom de la base, même erreur.

    J'ai l'impression que la connexion ne s'effectue pas, il est fort possible que mon Linked server soit mal configuré, auquel cas je ferais bien effectivement de demander de l'aide sur le forum SQL server. Je vais demander la migration de ce topic.

    Merci encore

  6. #6
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Par défaut
    En guise de test, je me suis fais une mini appli C# pour tenter de me connecter sur mon ODBC et ça fonctionne très bien :

    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
     
    OdbcConnection connect = new OdbcConnection();
    connect.ConnectionString = "DSN=SYS_TEMPORIS";
    connect.Open();
    if (connect.State == ConnectionState.Open)
                    {
                        MessageBox.Show("connection open");
                        OdbcCommand cmd = new OdbcCommand("select * from SOCIETESTRUCTURES", connect);
                        OdbcDataReader reader = cmd.ExecuteReader();
                        int i = 0;
                        while (reader.Read())
                        {
                            i++;
                        }
                        MessageBox.Show(reader.FieldCount.ToString() + " colonnes trouvées et "+i.ToString()+" lignes récupérées");                    
     
                    }
    Pas d'erreur, je récupère bien le bon nombre de ligne.

    Du coup, j'ai tilté un truc : le nom des tables telles qu'elles sont disponibles dans mon ODBC ne correspond pas aux noms définis dans HyperFile (je l'ai remarqué en refaisant un test dans Excel, qui m'affiche par défaut tous les noms de table)

    J'ai retenté d'utiliser mon linked server sachant ça et ça fonctionne bien...
    J'ai aussi changé les paramètres de sécurité pour ne plus me mettre dans un contexte sécurisé.

    J'essayais de faire ma requête en mettant le nom de table de Hyperfile (qui est en fait un nom de fichier physique en .fic) et SQL n'aimait pas bcp.

    Je ne sais pas où sont définis les matching entre les noms de table logique et les tables physiques dans HyperFile SQL (sans doute dans le fichier d'analyse .wdd qui est nécessaire au bon fonctionnement de l'ODBC), mais bon, on va dire que je pourrais dormir sans avoir cette information.

    Mon problème est donc résolu

    merci

  7. #7
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    J'ai un problème similaire : je dois récupérer des données d'une base Hyperfile en vue d'une migration vers un autre logiciel.

    J'ai téléchargé WinDev 12 Express, pensant que j'allais y trouver le nécessaire pour accéder à ma base Hyperfile. Mais je n'en ai pas l'impression.

    Où avez-vous trouvé à téléchager HyperfileSQL ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/01/2010, 17h18
  2. [SQL SERVER 2000] Transaction, verrous et utilisation de NOLOCK
    Par luimême dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/02/2009, 17h21
  3. [SQL SERVER 2000]Comment éviter l'utilisation de curseur
    Par TiteCoCo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/04/2008, 09h13
  4. [SQL Server ou MSDE] [Créations de tables]
    Par penchu dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 11/05/2007, 12h38
  5. [SQL-SERVER] Requete de création de connexion
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/04/2006, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo