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 :

[ADO] Passage de paramètre de type Date dans une requête


Sujet :

Bases de données Delphi

  1. #1
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut [ADO] Passage de paramètre de type Date dans une requête
    Bonjour

    Je n'arrive pas à affecter une valeur de type TDateTime comme paramètre dans un composant TADOQuery sur une colonne dont le type est SmallDateTime. Si quelqu'un a des éléments de réponse, il est le bienvenu.

    Remarque : La date passée en dur (sous forme de texte) dans la requête fonctionne.

    Merci par avance

    Cordialement

    e-ric

  2. #2
    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
    Fait voir ton code ca nous donnera une piste.

    sinon en général il est plus simple de passer une date de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      AdoQuery.Parameters.ParamByName('LaDate').Value := QuotedStr( FormatDateTime('MM/DD/YYYY',now));
    Mais cela oblige à faire des modifications du code si tu changes de base de données et que le format de date est différent. (Access = MM/DD/YYYY, My SQL = YYYY-MM-DD, etc ...)

  3. #3
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    Merci pour la rapidité

    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
     
    procedure TstInsertDate;
    var 
      dDate : TDateTime;
    begin
      AdoQryDest := fDataModule.ADOQryInsert;
      with AdoQryDest do begin
        Close; SQL.Clear;
        SQL.Add('INSERT INTO _tmp1');
        SQL.Add('(DateN, nom, prenom) VALUES(');
        SQL.Add(':pDate, :nom, :prenom)');
        //----------
        dDate := date-2;
        with Parameters do begin
          paramByname('pDate').Value := dDate;
          paramByname('nom').Value := 'DUPONTEL';
          paramByname('prenom').Value := 'Albert';
        end;
        ExecSQL;
      end;
    ...
    A l'exécution, j'obtiens le message d'erreur :
    Citation Envoyé par Erreur d'exécution
    [Microsoft][ODBC SQL Server Driver] Fonctionnalité optionnelle non implémentée.
    La solution que tu m'as proposée n'a pas fonctionné.

    Si tu veux d'autres précisions...

    e-ric

  4. #4
    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
    Rajoute un ParamCheck := true avant la définition des paramètres.

    Il m'est arrivé par fois que Ado ne detecte pas les paramètres.

  5. #5
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    C'est déjà fait ! mais sans plus de résultat.

    e-ric

  6. #6
    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
    1- Est ce que tu as les droits en insertion sur la table ?
    2- As tu fait un test sans la date ?
    3- As tu changer les paramètres de base de ce composant : ADOQryInsert ?

  7. #7
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    A vrai dire, je posais la question pour un collègue.
    Il a décidé de laisser tomber car il pense que cela est un problème de configuration ou de pilote MS SQL.

    Je te remercie néanmoins pour ton aide.

    Cdlt

    e-ric

Discussions similaires

  1. [AC-2007] Faire une gestion d'erreur du type date dans une TextBox
    Par andy331 dans le forum IHM
    Réponses: 3
    Dernier message: 05/02/2010, 19h35
  2. Réponses: 2
    Dernier message: 30/11/2008, 21h10
  3. Variable "date" dans une requête paramétrée
    Par amtdev dans le forum Bases de données
    Réponses: 10
    Dernier message: 25/01/2008, 19h42
  4. Réponses: 4
    Dernier message: 15/08/2007, 22h05
  5. insertion d'un type date dans une table access
    Par monstour dans le forum ASP
    Réponses: 7
    Dernier message: 18/06/2004, 16h57

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