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

VBScript Discussion :

Exécuter requête sur SQL Server 2000


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 26
    Points
    26
    Par défaut Exécuter requête sur SQL Server 2000
    Salut vous tous,
    Je tente d'accéder a SQL serveur via un VBS. J'ai cherché sur le net et tenté d'executer ce script. Je travaille sur mon poste avec un acces distant au serveur. Le DSN sur la base est créé sur mon poste, la connexion est ok.

    Si quelqu'un sait y voir clair sur ce bout de code, merci de votre aide.

    J'ai plusieur erreur VBS et je bloque sur celle la :
    Ligne 22 (Set SQLQuery = ...) --> objet requis : [string:"select * from dbo.JTR_matab"]

    Voici 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Option Explicit
     
    main 
     
    Function SQL_connect()
    	Dim connect
    	Dim recst
    	Dim connectState
    	Dim SQLQuery
     
    	Set connect = createobject("ADODB.Connection")
    	connect.ConnectionString = "Provider=SQLOLEDB; Data Source=SRVPROD; Initial Catalog=caischdb; uid=xx; pwd=xxx"
    	connect.Open
    	MsgBox "connect :" & connect
    	If connect.State = 1 Then
    		connectState = "open"
    	Else
    		connectState = "closed"
    	End If
    	Set recst = CreateObject("ADODB.Recordset")
    	'Construction de la requete SQL
    	Set SQLQuery = 	"select * from dbo.JTR_matab"
    	'Ouverture du recorset et execution de la requete sql	
    	recst.Open SQLQuery,connect,5,5
    	connect.Close
    End Function
     
    Function main()
    	Call SQL_connect
    End Function

  2. #2
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut,

    je ne sais pas si ça va t'aider mais voilà comment je fais personnellement pour utiliser une base SQL 2003:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    '*******************************************************************************************************************
    ' Routine qui ouvre la connexion à la base de données
    '*******************************************************************************************************************
    sub     open_bdd
        set odbfd = CreateObject("ADODB.Connection")                                                                            'Objet base de données access
        odbfd.Open ODBDSN                                                                                                          'Ouverture de la connexion
        if (Err.Number <> 0) then
            err_log "erreur", ODBDSN, "Impossible de se connecter à la base"
        end if
    end sub
    Voici ce que vaut ODBSN:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const	ODBDSN = "PROVIDER=SQLOLEDB;SERVER=mon_serveur;UID=usr_sha;DATABASE=ma_base;PWD=xxxx"
    Fonction qui exécute une requête fournie en argument:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function        get_req(byval ssql)
        dim odbresult
     
        set odbresult = odbfd.Execute(ssql)                                                                                          'Exécution de la requête
        if (Err.Number <> 0) then
            err_log "erreur", ssql, "Impossible d'exécuter la requête"
        end if
        set get_req = odbresult
    end function

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Merci pour cette aide. Je me connecte bien au serveur DB mais j'ai toujours cette meme erreur :
    Line 23
    Char 2
    Object required : '[string: "select * from dbo.JT"]'

    La variable est déclarée, c'est du string.
    Je comprends pas du tout pourquoi, la meme syntaxe de code marche chez mon collègue. Pourquoi la requête est tronquée ds le message d'erreur ? (nom de table incomplet)

    Si tu vois quelques chose, je suis preneur.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par zoubli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set SQLQuery = "select * from dbo.JTR_matab"
    Peux-tu me dire pourquoi un Set pour affecter une String?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Merci pour ta remarque. Je suis débutant en VBS, loin d'avoir tout assimilé.
    Je travaille avec la doc du net qui n'est pas légion par rapport au python, perl et autres.
    Voici donc le code corrigé et qui fonctionne. Ma remarque va vers le mode de connection au serveur. Si je veux utiliser le mode de connection ODBC au lieu de OLEDB, me suffit-il de changer uniquement le Provider, dans la mesure ou j'ai créé l'entrée du serveur dans le DSN de mon poste ? (j'ai remplacé par ODBC mais j'ai une erreur
    Pour parler d'un autre mode de connection, je sais que je ne peux utiliser le Provider=SQLNCLI car il n'est pas installé sur mon poste local

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    ==========
     
    Option Explicit
     
    main 
     
    Function SQL_connect()
    	Dim connect
    	Dim recst
    	Dim connectState
    	Dim SQLQuery
    	Dim ConnectionString
    	Dim get_reslt
     
    	Set connect = createobject("ADODB.Connection")
    	ConnectionString = "Provider=SQLOLEDB; Data Source=SRVPROD1; Initial Catalog=caischdb; uid=xx; pwd=xxx"
    	connect.Open ConnectionString
    	If connect.State = 1 Then
    		connectState = "open"
    		MsgBox "Connected to database :"
    	Else
    		connectState = "closed"
    		MsgBox "Not connected to database :"
    	End If
    	'Construction de la requete SQL
    	SQLQuery = "Select * from dbo.JTR_matab"
    	'Ouverture du recorset et execution de la requete sql
    	Set recst = Connect.Execute(SQLQuery)
    	If (Err.Number <> 0) Then
    		err_log "Erreur", SQLQuery, "Impossible d'exécuter la requête"
    	End If
    	On Error Resume Next
    	recst.MoveFirst
    	Do While Not recst.eof
                           MsgBox "Result :" & recst("jtr_scdn") & " , " & recst("jtr_name")
    	          recst.MoveNext
    	Loop
     
    	recst.Close
    	connect.Close
    	Set connect = Nothing
    End Function
     
    Function main()
    	Call SQL_connect
    End Function

Discussions similaires

  1. Requête sur Sql Server 2005 et 2000
    Par gazier20 dans le forum Développement
    Réponses: 1
    Dernier message: 05/01/2010, 15h23
  2. Quelques questions sur SQL Server 2000
    Par yinyang dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/12/2005, 19h39
  3. renseignements sur SQL Server 2000
    Par nagty dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/06/2005, 20h59
  4. [debutant]Auto incrementation sur sql-server 2000
    Par syl2095 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 18/11/2004, 18h00
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

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