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 :

Instruction SQL et Date


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 Instruction SQL et Date
    Le code suivant...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    adosqlcommand1.Add('UPDATE DOSSIER SET ' + data + '=' + dataValue + ' WHERE DOS_ID=' + IntToStr(DOS_ID) + ';');

    Génère le message SQL voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE DOSSIER SET DOSSIER_EMPR_DATE_NAISSANCE="16/04/2004" WHERE DOS_ID=15950;
    et fonctionne bien.

    Ma Question:

    Comment renseigner un champs d'une base de données quand il n'y pas de date :

    Le code suivant ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE DOSSIER SET DOSSIER_EMPR_DATE_NAISSANCE="00/00/0000" WHERE DOS_ID=15950;
    génère un message d'erreur disant:


  2. #2
    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
    J'oublie de préciser que j'utilise Delphi 7 et ses composants ADO ainsi une base de données MS ACCESS 2000.

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 54
    Points
    54
    Par défaut
    Tout simplement tester dans ton code, la valeur de ta date avant de faire l'update...

  4. #4
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut
    Bonjour,
    si j'ai bien compris que tu souhaites mettre à vide la valeur de ta date,
    l'instruction sql est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE DOSSIER SET DOSSIER_EMPR_DATE_NAISSANCE=null WHERE DOS_ID=15950;
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Points : 35
    Points
    35
    Par défaut Re: Instruction SQL et Date
    Citation Envoyé par Didier100
    Ma Question:

    Comment renseigner un champs d'une base de données quand il n'y pas de date :

    Le code suivant ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE DOSSIER SET DOSSIER_EMPR_DATE_NAISSANCE="00/00/0000" WHERE DOS_ID=15950;
    DOSSIER_EMPR_DATE_NAISSANCE="00/00/0000" c'est pas une date ça
    pourquoi ne pas laisser le champ à null puisqu'il n'y a pas de date

  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
    Merci pour vos sugestions, pithier, Iper et Creenshaw.



    Iper à bien compris mon problème ...

    Je doit enseigner un champ qui na pas de date ... donc j'avait essayé d'enseigner la valeur "NULL" au champ de la date.

    L'instruction suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    adosqlcommand1.Add('UPDATE DOSSIER SET DOSSIER_EMPR_DATE_NAISSANCE="null" WHERE DOS_ID=15950;');
    génère un message d'erreur disant:



    c'est idem pour le code suivant ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE DOSSIER SET DOSSIER_EMPR_DATE_NAISSANCE=null WHERE DOS_ID=15950;
    qui génère un message d'erreur disant:


    Comment faire pour enseigner le champ DOSSIER_EMPR_DATE_NAISSANCE correctement : Qui à une :

  7. #7
    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
    Pour l'instant j'ai ne rien trouvé de mieux que d'enseigner le champ DOSSIER_EMPR_DATE_NAISSANCE avec la valeur 30/12/1899 11:00. Cette date c'est l'heure" 0 " pour Delphi!

    Dans l'aide de Delphi j'ai trouvé l'information suivante:

    La partie entière d'une valeur TDateTime de Delphi représente le nombre de jours écoulés depuis le 30/12/1899.La partie fractionnaire de la valeur TDateTime est la partie des 24 heures écoulée.

    Voici quelques exemples de valeurs TDateTime avec les dates et heures correspondantes*:

    0 = 30/12/1899 12:00 am
    2.75 = 1/1/1900 6:00 pm
    -1.25 = 29/12/1899 6:00 am
    35065 = 1/1/1996 12:00 am
    Pourpoui la valeur NULL ne fonctione t'elle pas dans l'instruction SQL en ce qui concerne le type TDATETIME :

  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
    Le mesage à été déplace pour respecter l'ordre chronologique ... voire message du Lun Juil 19, 2004 12:18

  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
    Citation Envoyé par Didier100
    Pour l'instant j'ai ne rien trouvé de mieux que d'enseigner le champ DOSSIER_EMPR_DATE_NAISSANCE avec la valeur 30/12/1899 12:00. Cette date c'est l'heure" 0 " pour Delphi!

    Dans l'aide de Delphi j'ai trouvé l'information suivante:

    La partie entière d'une valeur TDateTime de Delphi représente le nombre de jours écoulés depuis le 30/12/1899.La partie fractionnaire de la valeur TDateTime est la partie des 24 heures écoulée.

    Voici quelques exemples de valeurs TDateTime avec les dates et heures correspondantes*:


    0 = 30/12/1899 12:00 am
    2.75 = 1/1/1900 6:00 pm
    -1.25 = 29/12/1899 6:00 am
    35065 = 1/1/1996 12:00 am
    Pourpoui la valeur NULL ne fonctione t'elle pas dans l'instruction SQL en ce qui concerne le type TDATETIME :

  10. #10
    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
    Pour l'instant j'ai ne rien trouvé de mieux que d'enseigner le champ DOSSIER_EMPR_DATE_NAISSANCE avec la valeur 30/12/1899 11:00. Cette date c'est l'heure" 0 " pour Delphi!

    Et non, ça ne marche pas non plus car dans ma base de données access j'ai trouve la date 30/12/1899 12:00 ....

    Grrrrr

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 32
    Points : 35
    Points
    35
    Par défaut
    UPDATE DOSSIER SET DOSSIER_EMPR_DATE_NAISSANCE=null WHERE DOS_ID=15950;
    je ne connais pas bcp Access mais je pense pas qu'il faille mettre
    = null
    mais
    SET DOSSIER_EMPR_DATE_NAISSANCE='' (cote simple) ou
    SET DOSSIER_EMPR_DATE_NAISSANCE= "" (double)

  12. #12
    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
    J'avait deux problème dans mon programme, un des deux c'est Iper qui la résolu avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE DOSSIER SET DOS_COM_DATE_OUVERTURE=null WHERE DOS_ID=15966;
    Deuxième erreur : Je me suis trompée dans l'écriture du nom du champs
    qui est DOS_COM_DATE_OUVERTURE et non DOSSIER_COM_DATE_OUVERTURE .

    Le(s) problème(s) est (sont) résolu pour moi. ... et merci encore ...

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

Discussions similaires

  1. PL/SQL TROUVER DATES DE PÂQUES, ASCENSION et PENTECôTE
    Par mimi_été dans le forum PL/SQL
    Réponses: 4
    Dernier message: 21/10/2004, 15h40
  2. Réponses: 3
    Dernier message: 06/10/2004, 15h38
  3. [VB.NET] Requete sql et date
    Par mic56 dans le forum Accès aux données
    Réponses: 11
    Dernier message: 03/06/2004, 10h39
  4. Instruction SQL qui supprime une colonne d'une table
    Par tseg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2003, 20h47
  5. Passer de la zone d'édition vers une instruction sql
    Par tripper.dim dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/11/2002, 14h44

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