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.NET Discussion :

Problème SQL dans VB


Sujet :

VB.NET

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut Problème SQL dans VB


    J'ai des TableAdapter dans mon projet dans lesquels il y a par défaut des méthodes Fill(). Ce que je veut faire, c'est rajouter des méthodes par exemple FillByAnnee() pour remplir mon TableAdapter à partir de l'argument p_annee.

    Ce que j'ai fait, j'ai créé une nouvelle instruction SQL SELECT (non pas de procédure stockée) qui comporte ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM CEPE
    WHERE EXTRACT (YEAR FROM DTE) = @p_annee
    Cependant il me renvoie des erreur avant même de finir la création des méthodes, quelqu'un peut me mettre sur la voie s'il vous plait ?


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Yep,

    Pourrais tu nous filer les messages d'erreurs et peut-être un bout de code qui pause problème ?

    Sur quel SGBD travailles tu ?
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Pourrais tu nous filer les messages d'erreurs et peut-être un bout de code qui pause problème ?
    Je ne suis pas au boulot mais à priori il ne reconnaîtrait pas la commande FROM dans le EXTRACT puis le @ de la variable (il me semblait que ça se faisait ainsi d'après ce que j'avais une fois vu sur un tutoriel dont je ne me souviens plus le nom et l'url)

    Citation Envoyé par infosam76 Voir le message
    Sur quel SGBD travailles tu ?
    Oracle 10g
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Donc pour oracle, le caractère à utiliser est :

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM table1 WHERE Id= :Id
    Pour l'Extract, "DTE" est un champ de ta table ?


    Sinon à mon avis un truc du genre devrait fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXTRACT (YEAR FROM SYSDATE)
    où dans ce cas tu récupère l'année hors de la date système.

    J'espère que tu vas pouvoir avancer un peu
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Pour l'Extract, "DTE" est un champ de ta table ?
    Oui de la table CEPE comme indiqué dans le premier post
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Je vais un peu essayer cela demain sur une DB oracle que j'ai au boulot
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  7. #7
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Ici sous Oracle 11g, la requête est fonctionnelle, et je confirme le caractère ":" pour les requêtes paramétrées (sous Oracle).

    Exemple qui fonctionne chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Dim command As New OleDbCommand("SELECT * FROM XXXXXX WHERE EXTRACT (YEAR FROM XXXXXX.ChampTypeDate) = :laDate", CType(connection, OleDbConnection))
            Dim reader As OleDbDataReader
     
            command.Parameters.Add(":laDate", OleDbType.BSTR)
            command.Parameters(":laDate").Value = "2010"
     
            reader = command.ExecuteReader()
     
            While reader.Read
     
                MsgBox(reader(0).ToString & "  ---  " & reader(1).ToString)
     
            End While

  8. #8
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Je rejoins _Ez3kiel , la requête est fonctionnel ici aussi (également Oracle 11g)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Ok je test ça dans la journée, merci
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  10. #10
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Donc après mes test voici ce que j'ai en retour:

    Avec le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM CEPE
    WHERE EXTRACT (YEAR FROM DTE) = :p_annee
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  11. #11
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Peut-être que l'assistant n'est pas fan des requêtes paramétrées ... (Jamais utilisé l'assistant pour ma part)
    Et la requête SQL est sur 2 lignes ? Ptetre ça le dérange ?
    Il parle de la clause FROM, il veut peut-être que le schéma soit renseigné ... NomSchema.NomTable (pas besoin si pas connecté en SYSDBA)...

  12. #12
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Alors là je comprends pas ....

    Un détail attire mon attention, je vois que le SELECT est bien en bleu (donc reconnu) mais ni le FROM ni le WHERE ?

    Est ce normal ? (je n'utilise jamais ce Wizard je code tj à la main
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  13. #13
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Il parle de la clause FROM, il veut peut-être que le schéma soit renseigné ... NomSchema.NomTable (pas besoin si pas connecté en SYSDBA)...
    Pas con mais à ce moment la je pense qu'il parlerait d'une erreur dans la clause FROM non ?

    Sinon peut-être le * dans le SELECT. Peut-être essayé en donnant un champ
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  14. #14
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Sur une ligne le résultat est le même. Pour le * ça n'a rien à voir car j'ai une méthode Fill et GetData() pour chacune des tables qui contient la requête:
    Sauf que cette table CEPE contient plus d'1 millions d'enregistrement et j'en ai une autre juste à côté qui en près de 800.000 alors le chargement de chaque table pour ajouter 1 malheureuse ligne... ça fait long à attendre donc le but c'est de charger éventuellement pour commencer, l'année donnée en paramètre.

    J'ai également essayé ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT       *
    FROM         CEPE
    WHERE       EXTRACT(YEAR FROM DTE) = EXTRACT(YEAR FROM CURRENT_DATE)
    il me met toujours l'erreur mais il exécute tout de même avec succès la requête
    Je me suis dit que je veut au moins ressortir les enregistrements de l'année en cours donc nullement besoin d'avoir un paramètre. Si quelqu'un, un jour, peut me dire pourquoi Visual Studio mais sort cette erreur alors qu'il fait tout de même le traitement, bin je prend

    [EDIT]
    Sous Toad for Oracle, pas de soucis, je pense que c'est Visual Studio qui merdouille un chouilla
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  15. #15
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    A court d'idées pour ma part, j'ai tenté de googler mais sans grand succès...

    Peut-être le forum VS aura plus d'idées ?

    En dernier recours, tu peux toujours passer outre l'assistant ...

  16. #16
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    Si quelqu'un, un jour, peut me dire pourquoi Visual Studio mais sort cette erreur alors qu'il fait tout de même le traitement, bin je prend
    La fonction EXTRACT est propre à PL/SQL. Il est donc possible que son fonctionnement ne soit pas correctement géré par Visual Studio.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  17. #17
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    La fonction EXTRACT est propre à PL/SQL. Il est donc possible que son fonctionnement ne soit pas correctement géré par Visual Studio.
    Quel serait un équivalent ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  18. #18
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    En fait la norme ANSI SQL2003 expose la fonction scalaire EXTRACT. En revanche il est précisé que mis à part MySQL, les SGBDR l'utilisent avec leur propre nom et leur propre implémentation...

    Donc apparemment Oracle a gardé EXTRACT pour extraire une partie de date (datepart).

    Dans SQL Server, il faut regarder du côté des fonctions Date et DateTime qui retournent un entier.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  19. #19
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    essaie un peu ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TRUNC(DTE, 'YEAR')
    Au lieu de EXTRACT
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

Discussions similaires

  1. Problème SQL dans une base Oracle
    Par novadga dans le forum SQL
    Réponses: 2
    Dernier message: 29/07/2013, 15h14
  2. Problème SQL dans VBA
    Par Basicnav dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/02/2010, 14h03
  3. [AC-2000] Problème SQL dans formulaire recherche
    Par Ckikikirame dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/05/2009, 16h30
  4. Problème SQL dans code VBA
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 15/05/2007, 13h22
  5. Problème SQL dans une bdd de projets et de chef
    Par loutsky dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/03/2006, 17h01

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