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 :

[Delphi & DBExpress ] Mettre un champs date à null


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut [Delphi & DBExpress ] Mettre un champs date à null
    Bonjour tout le monde,

    J'ai réalisé un outil qui prend en entrée une table et qui en sortie transforme les données pour les copier dans une nouvelle table.
    J'utilise pour cela des objets TclientDataSet (un pour la table source cdsSOURCE, un pour la table destination cdsTARGET). Problème cependant, quand un des champs date de la table source est à null et que je le copie dans la table destination, le champs est initialisé au 01/01/1900... Pas très pratique...

    Code déjà essayé :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    cdsTARGET.FieldByName('champdest'):= cdsSOURCE.FieldByName('champsource');
     
    cdsTARGET.FieldByName('champdest').AsSQLTimeStamp:= cdsSOURCE.FieldByName('champsource').AsSQLTimeStamp;
     
    cdsTARGET.FieldByName('champdest'):= NullSQLTimeStamp;
     
    cdsTARGET.FieldByName('champdest').clear; (marche pour Oracle mais pas pour SQLServer!)
     
    cdsTARGET.FieldByName('champdest').AsSQLTimeStamp := null;
     
    cdsTARGET.FieldByName('champdest').Value:= cdsSOURCE.FieldByName('champsource').Value;
    Aucun ne marche! merci d'avance pour toute aide!

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 99
    Par défaut
    Tu as essayé avec clear mais en définissant le datatype avant ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut
    Salut rbag, merci de m'avoir répondu... Que veux tu dire par définir le datatype? Peux tu me donner un exemple?

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 99
    Par défaut
    J'utilise ça pour insérer du null sous oracle... Il faut impérativement mettre le datatype avant, je ne sais pas pourquoi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SQLQuery1.ParamByName('vq').DataType := ftDateTime;
    SQLQuery1.ParamByName('vq').Clear;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut
    ok jvé essayer ca demain ! merci :-)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut
    ca ne marche pas ca me dit "propriété en lecture seule"

  7. #7
    Membre habitué
    Inscrit en
    Décembre 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 13
    Par défaut
    Hello,

    J'ai également eu ce problème et pour le régler j'ai fait comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if madate> 0 then begin
            MaQuery.ParamByName('date_debut').Value := DateToStr(madate);
    end else begin
            MaQuery.ParamByName('date_debut').Value := '';
            MaQuery.ParamByName('date_debut').DataType := ftString;
            MaQuery.ParamCheck := False;
    end;

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut
    merci tiennos pour ton aide ! malheureusement ca ne marche pas mieux, à la compilation j'ai toujours la même erreur qui se produit, à savoir à l'affectation du datatype :
    MaQuery.ParamByName('date_debut').DataType := ftString;
    il me dit que la propriété DataType est en lecture seule

  9. #9
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 62
    Par défaut
    Quel SGBD utilises-tu?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Par défaut
    SQLServer

  11. #11
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 8
    Par défaut Date à nul
    Bonjour,
    Pour des tables Paradox voici comment j'ai ai codé pour résoudre le problème:
    Table0 = la table source
    Table1 = la table destination
    If not Table0DateJour.isNull then // Table0DateJour = le nom du champs persistant
    Table1.FieldByName('DateJour').AsDateTime := Table0.FieldByName('Date').asDateTime;

Discussions similaires

  1. [AC-2003] Mettre à jour champ date
    Par CmzxNene dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/05/2011, 08h12
  2. Remise d'un champ Date à NULL
    Par PatStan17 dans le forum C#
    Réponses: 4
    Dernier message: 02/12/2010, 16h11
  3. Oracle 9.2 : Importation et champ date NULL
    Par mimil77210 dans le forum Oracle
    Réponses: 16
    Dernier message: 17/04/2008, 15h25
  4. champ date null
    Par viny dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 07/08/2007, 21h18
  5. Problème champ Date Null
    Par cisco7 dans le forum Oracle
    Réponses: 5
    Dernier message: 24/09/2006, 13h58

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