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

VB 6 et antérieur Discussion :

[VB6] Probleme d'execution de requete


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut [VB6] Probleme d'execution de requete
    Je développe une application VB 6 qui execute des scripts SQL sur une base de données SQL Server:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maconnexion.execute(requete)
    la variable requete et le contenu sont identiques, sur l'analyseur de requête de SQL Server, la requete fonctionne sans souci mais pas sur VB.
    la requete contient donc tout un script du style :

    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
     
    USE lfb
     
    Print '**** début création table SQL  TPMAREMB sites clients viewtrans v101 ****'
     
    /*   jeudi 12 janvier 2006 09:27:36   Utilisateur : sa   Serveur : SRVCOMPTA   Base de données : Transport   Application : MS SQLEM - Data Tools*/BEGIN TRANSACTION
    SET QUOTED_IDENTIFIER ON
    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
    SET ARITHABORT ON
    SET NUMERIC_ROUNDABORT OFF
    SET CONCAT_NULL_YIELDS_NULL ON
    SET ANSI_NULLS ON
    SET ANSI_PADDING ON
    SET ANSI_WARNINGS ON
    COMMIT
    BEGIN TRANSACTION
    CREATE TABLE dbo.TPMAREMB
    	(
    	ACTIVIC char(2) NOT NULL,
    	MARCHAC char(5) NOT NULL,
    	ORDRE0N numeric(18, 0) NOT NULL,
    	EMBALLC char(10) NOT NULL,
    	DERMAJC char(10) NOT NULL,
    	DERMAJD datetime NOT NULL,
    	CREATIC char(10) NOT NULL,
    	CREATID datetime NOT NULL
    	)  ON [PRIMARY]
    GO
    ALTER TABLE dbo.TPMAREMB ADD CONSTRAINT
    	PK_TPMAREMB PRIMARY KEY CLUSTERED 
    	(
    	ACTIVIC,
    	MARCHAC,
    	ORDRE0N
    	) ON [PRIMARY]
     
    GO
    COMMIT
     
    Print '**** fin création table SQL  TPMAREMB sites clients viewtrans v101 ****'
    Le problème est que VB me renvoie une erreur : syntaxe incorrecte vers le mot ... est juste avant ce mot il y a un "GO".

    Pourquoi est ce que VB me renvoie cette erreur ???
    Existe il un moyen de remplacer le GO par autre chose sinon ???

    Merci d'avance

  2. #2
    Membre éprouvé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Par défaut
    Je ne vois pas de code VB, particulièrement là où tu initialises ta variable requete

  3. #3
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Effectivement mais la variable requete contient le contenu d'un script par exemple celui que je t'ai mis en exemple.

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Le mot clé GO n'est reconnu que par query analyser.
    Remplace le par des point-virgules.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    On m'avais soumis l'idée mais même en remplaçant les GO par des les points virgules le résultat est le même, la requête plante

  6. #6
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Par contre chose bizarre en rédigeant la même requête sous l'analyseur de requête :

    --> Avec les GO = la requête fonctionne

    --> En remplaçant les "GO" par des ";" = Serveur*: Msg 207, Niveau 16, État 1, Ligne 1
    Invalid column name 'RECQTEC'.

    --> En supprimant les "GO" = Serveur : Msg 207, Niveau 16, État 1, Ligne 1
    Invalid column name 'RECQTEC'.

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Ce qui est clair, c'est que vous ne pouvez pas intercaler un GO dans une transaction.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    En complement à tes problèmes, je vous sugère de créer une procédure stockée et d'appeler juste celle ci en VB.
    Et là, je suis sur que le problème ne va plus se poser,
    Ton code VB sera plus lisible et vous allez benéficier de tous les avantages offerts par une procédure stockée !

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. probleme d'execution de requete
    Par 01211983 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 06/03/2008, 12h27
  2. probleme d'execution de requete
    Par pit88 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/05/2007, 16h49
  3. probleme d'execution de requete
    Par pit88 dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 10/05/2007, 15h56
  4. Réponses: 26
    Dernier message: 23/06/2006, 15h45
  5. [VB6]Probleme d'execution avec la commande Shell
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/06/2006, 09h28

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