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 :

Openrowset version 2000 vs version 2005


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2004
    Messages : 130
    Par défaut Openrowset version 2000 vs version 2005
    Bonjour,
    je souhaite historiser le niveau de version de mes serveurs et conserver cela dans une table enrichie via openrowset.

    Mes serveurs sont soit en 2000 et le 'provider' doit être SQLOLEDB
    soit en 2005 et le 'provider' doit être SQLNCLI.

    Dans mon script (cf infra), je teste la version et selon cette dernière je fais un openrowset avec soit SQLOLEDB soit SQLNCLI.

    Le script fonctionne sans souci en 2005 mais en 2000, je passe bien dans le paragraphe pour le 2000 mais j ai le message :

    Serveur : Msg 7403, Niveau 16, État 1, Ligne 21
    Impossible de créer l'entrée de Registre pour le fournisseur OLE DB 'SQLNCLI'.
    Trace de l'erreur OLE DB [Non-interface error: Provider not registered B]
    il suffit que je commentaise l openrowset du 2005 pour que cela fonctionne.

    Avez vous des pistes à me suggerer?
    Merci d avance

    Le script:

    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
    21
    declare @v varchar(50), @vv char(1) set @v=cast( (select serverproperty('ProductVersion') ) as varchar(50) ) set @vv=substring(@v,1,1) if @vv='8' -- test vesrion ss2000 begin print 'Je suis en 2000' insert into openrowset('SQLOLEDB','10.161.98.6\DCADBA';'test';'test','select * from Suivi.dbo.Serveur') ( S_ver ) values ( @v ) end else -- test vesrion ss2005 begin print 'je suis en 2005' insert into openrowset('SQLNCLI','10.161.98.6\DCADBA';'test';'test','select * from Suivi.dbo.Serveur') ( S_ver ) values ( @v) end

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Méditons un peu sur ce code dans une base 2000:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DECLARE @Test varchar(10)
    SET	@TEST = 'NON OK'
    IF 	@TEST = 'OK' BEGIN
    insert into openrowset('SQLNCLI','10.161.98.6\DCADBA';'test';'test','select * from Suivi.dbo.Serveur')( S_ver ) values ( 'hhh') 
    END
    eh bien il ne marche pas ...
    car ce nigaud de compilateur SQL 2000 essaye d'interpréter openrowset('SQLNCLI' ...
    avant même de se rendre compte qu'il ne sera pas jamais atteint en run-time à cause du IF @TEST = 'OK' BEGIN

    J'ai contourné le problème avec un EXEC('mes instructions T-SQL')
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre confirmé

    Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2004
    Messages : 130
    Par défaut Grand merci
    Grand merci. Votre méthode fonctionne. Par contre pouvez vous m expliquer en deux mots pourquoi le compilateur ne permet pas de gérer correctement un superbe test?
    Encore merci
    bien à vous

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Comme ce n'est pas moi qui ai écrit le compilateur, j'ai du mal à vous répondre ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. Différence entre les différentes versions 2000, 2005 et 2008
    Par Oberown dans le forum Administration
    Réponses: 1
    Dernier message: 14/10/2009, 16h52
  2. documentation pour une formation au vba excel version 2000
    Par zobusfr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2007, 19h17
  3. quelle version pour indy et 2005 personal
    Par rokybalboa dans le forum Delphi
    Réponses: 5
    Dernier message: 07/03/2007, 22h33
  4. Runtime Version 2000 SR1
    Par jouf dans le forum Runtime
    Réponses: 5
    Dernier message: 14/04/2006, 10h56
  5. Réponses: 6
    Dernier message: 13/04/2005, 09h18

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