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

Bases de données Delphi Discussion :

Requête SQL via les composants ADO sur une Table Access 97


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut Requête SQL via les composants ADO sur une Table Access 97
    Windows XP-SP2 / Delphi 7 Enterprise / Access 97

    J'ai écrit un petit programme qui utilise une requette SQL via les composants ADO de Derlphi 7 sur une table d'une base de données MS Access 97

    Extrait du code utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AdoQuery1.SQL.Text := 'SELECT DOS_ID, DOS_EMPR_NOM, DOS_EMPR_PRENOM, DOS_DATE_PHASE1  From Dossier WHERE ((DOS_DATE_PHASE1)=#12/01/2007 11:03#) order by DOS_ID';
    AdoQuery1.Open;
    La requette SQL genère une erreur disant:
    Le projet PerfeoStatManager.exe a provoqué une classe d'exception EOLeException avec le message 'Objet Parameter défini de manière incorrecte. Des informations incohérentes ou incomplètes ont été fournies', Processus stoppé. Utilisez Pas-à-pas ou Ecécuter pour continuer.
    Ce qui me pose un problème est la partie de "temps":
    ((DOS_DATE_PHASE1)=#12/01/2007 11:03#)
    Et voici ma question:
    Comment doit je formuler la requette pour le temps?

    Complement d'information:
    Quand j'ouvre la table sous Access en mode Création je trouve les informations suivantes:

    DOS_DATE_PHASE1: Date/Heure
    Format: Date, abrégé



    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Février 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2006
    Messages : 537
    Points : 460
    Points
    460
    Par défaut
    Bonjour,
    je ne suis pas trop calé mais as tu essayé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AdoQuery1.SQL.Add('SELECT DOS_ID, DOS_EMPR_NOM, DOS_EMPR_PRENOM, DOS_DATE_PHASE1  From Dossier WHERE ((DOS_DATE_PHASE1)=#12/01/2007 11:03#) order by DOS_ID');
    AdoQuery1.Open;
    Ils ne savaient pas que c'était impossible, alors ils l'ont fait !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut
    Hola andreditdd, Merci pour ton aide.

    Quand j'execute la commande suivante je ne reçoit pas d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AdoQuery1.SQL.Add('SELECT DOS_ID, DOS_EMPR_NOM, DOS_EMPR_PRENOM, DOS_DATE_PHASE1  From Dossier  order by DOS_ID');
    puis quand j'execute cette commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AdoQuery1.SQL.Add('SELECT DOS_ID, DOS_EMPR_NOM, DOS_EMPR_PRENOM, DOS_DATE_PHASE1  From Dossier WHERE ((DOS_DATE_PHASE1.date)=#12/01/2007 11:03#) order by DOS_ID');
    je reçoit un message d'erreur disant:

    Le projet PerfeoStatManager.exe a provoqué une classe d'exception EOLeException avec le message 'Objet Parameter défini de manière incorrecte. Des informations incohérentes ou incomplètes ont été fournies', Processus stoppé. Utilisez Pas-à-pas ou Ecécuter pour continuer.
    Je conclus donc que l'erreur vient de ce petit bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((DOS_DATE_PHASE1.date)=#12/01/2007 11:03#)
    La question suivante reste d'actualité:
    Comment doit je formuler la requette pour le temps?

    Merci d'avance pour votre aide.

  4. #4
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut

    essai plutôt avec un paramètre sa vous évite toute peine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AdoQuery1.SQL.Add('SELECT DOS_ID, DOS_EMPR_NOM, DOS_EMPR_PRENOM, DOS_DATE_PHASE1  From Dossier WHERE (DOS_DATE_PHASE1= :MyDate) order by DOS_ID');
    AdoQuery1.Parameters.ParamByName('MyDate').Value := UneValeureTDateTime;

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut
    Citation Envoyé par Didier100 Voir le message
    Je conclus donc que l'erreur vient de ce petit bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((DOS_DATE_PHASE1.date)=#12/01/2007 11:03#)
    Pourquoi ajouté .date au champ ?
    Plutôt comme ceci:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    DOS_DATE_PHASE1=#12/01/2007 11:03#

    @+ Claudius

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut
    Bonjour Cl@udius,

    quand je remplace la partie du code concernant le temps
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DOS_DATE_PHASE1=#12/01/2007 11:03#
    Je reçois toujours le même message d'erreur disant

    Le projet PerfeoStatManager.exe a provoqué une classe d'exception EOLeException avec le message 'Objet Parameter défini de manière incorrecte. Des informations incohérentes ou incomplètes ont été fournies', Processus stoppé. Utilisez Pas-à-pas ou Ecécuter pour continuer.
    Par contre la requette suivante passe bien mais ne fournit pas de résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DOS_DATE_PHASE1>=01/10/2007
    Il reste encore un problème de formatage de la date ...?

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    As-tu essayé de passer par une requête paramétrée comme la suggéré aityahia ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut
    Bonjour Cl@udius

    effectivement ce que aityahia ma proposé semble de bien fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AdoQuery1.SQL.Add('SELECT DOS_ID, DOS_EMPR_NOM, DOS_EMPR_PRENOM, DOS_DATE_PHASE1  From Dossier WHERE (DOS_DATE_PHASE1 >= :MyDate) order by DOS_ID');
        AdoQuery1.Parameters.ParamByName('MyDate').Value := StrToDate('15/11/2007');
    Je doit débocher .... et vais continuer mes tests Mercredi matin le 19.12.2007 ....

    Il me semble que nous sommes sur la bonne piste

    MERCI aityahia

    A Mercredi ....

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 157
    Points : 80
    Points
    80
    Par défaut
    Bon j'ai vérifié le bon fonctionnement du code.

    Ca marche "Nickel"

    Merci a tous pour votre aide.

    Le problème est résolu!

  10. #10
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Didier100 Voir le message
    Bon j'ai vérifié le bon fonctionnement du code.

    Ca marche "Nickel"

    Merci a tous pour votre aide.

    Le problème est résolu!
    Pense alors à cliquer sur le bouton ^^
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

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

Discussions similaires

  1. Requête SQL pour récupérer la structure d'une table
    Par Emyleen dans le forum Développement
    Réponses: 2
    Dernier message: 10/09/2012, 16h57
  2. Réponses: 4
    Dernier message: 28/08/2011, 16h03
  3. Récupérer tous les composants posée sur une forme
    Par toutounesan dans le forum VB.NET
    Réponses: 10
    Dernier message: 20/06/2011, 17h08
  4. [SQL 2008R2] Trigger de suppression sur une table récursive
    Par sebRD dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/05/2011, 14h44
  5. [Requête/SQL]ajouter un champ calculé dans une table
    Par zougna dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 17/04/2007, 19h09

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