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 :

Variable "date" dans une requête paramétrée


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 190
    Points : 112
    Points
    112
    Par défaut Variable "date" dans une requête paramétrée
    Bonjour à tous,
    Je vous présente mon morceau de programme pascal objet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
         procedure TForm1.FormActivate(Sender: TObject);
                var ref:Tdate;
         begin
                ref:=IncMonth(date,-11);
                dm.Query.ParamByName('ddc').AsDate:=ref;
                dm.Query.Open;
         end;
    et dans le Query j'ai :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
         select codecl, max(datecom) as date_com
         from commander
         group by codecl
         having max(datecom) <=:ddc
    Le problème c'est qu'à l'exécution il m'affiche le message suivant:

    "Format de date invalide (null)" je ne comprend pas pourquoi.
    Je vous remercie de m'éclairer sur cette erreur.

  2. #2
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Es-tu certain que c'est bien à l'exécution de FormActivate que se produit l'erreur ? Est-ce que ton Query n'est pas ouvert en conception, ce qui provoquerait ' exécution de la requête lors de sa création, avant que dcc soit renseigné ?
    Sinon, autre piste, essaie de définir explicitement dcc dans la propriété Params de Query, en spécifiant bien son type.

    Sinon, il serait peut-être utile que tu précises ton sgbd
    Roland

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 190
    Points : 112
    Points
    112
    Par défaut
    Merci pour l'intérêt que vous portez à mon problème. Pour le SGBD, j'utilise l'Access. Et pour votre proposition çà ne fonctionne toujours pas. Toujours le même message d'erreur.

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dm.Query.SaveToFile('toto.txt')
    pour voir le texte généré. Souvent il s'agit d'une inversion entre le mois et le jour qui provoque cette erreur

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 190
    Points : 112
    Points
    112
    Par défaut
    Je n'ai pas la fonction Query.SaveToFile dans ma version de Delphi5. Et si c'est le cas (inversion du mois avec le jour) que dois-je faire pour remédier à cela?

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    suggestion

    en mode debug ,un point d'arret sur le Query.open, essaies de voir Query.SQL.text ???
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 190
    Points : 112
    Points
    112
    Par défaut
    ça ne marche toujours pas. Je vous donne la totalité du message d'erreur que je reçois : "Erreur SQL générale [Microsoft] [Pilote ODBC Microsoft Access] Format de date invalide (null)".

  8. #8
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Citation Envoyé par ALWEBER Voir le message
    fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dm.Query.SaveToFile('toto.txt')
    pour voir le texte généré. Souvent il s'agit d'une inversion entre le mois et le jour qui provoque cette erreur
    C'est plutôt faire un dm.Query.SQL.SaveToFile('MonFichier.txt') qu'il faut faire.

    Une fois que c'est fait, il faudrait le poster afin de voir ce qui pose problème ...
    A+

  9. #9
    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
    Essaie Comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     procedure TForm1.FormActivate(Sender: TObject);
                var ref:Tdate;
         begin
                dm.Query.Close;
                ref:=IncMonth(date,-11);
                dm.Query.ParamCheck := True;
                dm.Query.ParamByName('ddc').Value:=ref;
                dm.Query.Open;
         end;
    Citation Envoyé par ero-sennin Voir le message
    Salut,



    C'est plutôt faire un dm.Query.SQL.SaveToFile('MonFichier.txt') qu'il faut faire.

    Une fois que c'est fait, il faudrait le poster afin de voir ce qui pose problème ...
    A+
    Inutile, les paramètres ne sont pas enregistrés quand on fait un SaveToFile.
    Modérateur Delphi

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

  10. #10
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 190
    Points : 112
    Points
    112
    Par défaut
    Toujours le même message d'erreur.

  11. #11
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 190
    Points : 112
    Points
    112
    Par défaut
    J'ai trouvé la solution, il fallait écrire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.FormActivate(Sender: TObject);
                var ref:TDateTime;
         begin
                ref:=IncMonth(date,-11);
                dm.Query.ParamByName('ddc').AsDateTime:=ref;
                dm.Query.Open;
         end;
    Je vous remercie comme même.

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

Discussions similaires

  1. Compter les Dates différentes dans une requête Access
    Par maxireus dans le forum Modélisation
    Réponses: 2
    Dernier message: 11/05/2007, 00h02
  2. Date+delai dans une requête PostGresql
    Par bobic dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 12/03/2007, 12h11
  3. Pbs de date nulle dans une requête ACCESS
    Par tedparker dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 24/07/2006, 22h39
  4. Date nulle dans une requete paramétrée avec TParameter
    Par denrette dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/06/2004, 08h37

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