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 interbase sql date


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut delphi interbase sql date
    je veux faire une recherche par date dans une BD Interbase2009 en utilisant TIBDataset mais j'y arrive pas; j'ai un messsage d'erreur : conversion error from string "19/02/2009"
    voici le code

    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
    procedure TfProvisoire.dtpChange(Sender: TObject);
    var sDate, sSql : string;
    begin
      sDate := FormatDatetime('dd/mm/yyyy',dtp.Date);
      sSql :='SELECT * FROM POST WHERE DATEIMP = '
              +QuotedStr(sDate)+ ' and TYPEPOST = '
              +QuotedStr('Provisoire')+ ' ORDER BY DATEIMP';
      if rgRech.ItemIndex = 3 then
       begin
         qPost.Active := false;
         qPost.SelectSQL.Clear;
         qPost.SelectSQL.Add(sSql);
          qPost.Active := true;
       end;
    end;

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 656
    Billets dans le blog
    65
    Par défaut
    salut ,

    Ton erreur est d'utiliser le format français de date, si tu doit utiliser celui-ci c'est sous la forme jj.mm.aaaa qu'il te faut le faire.

    je conseille généralement d'utiliser les pamètres pour ce genre de requête ou au minimum un "transtypage" (CAST)

    première résolution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sDate := FormatDatetime('mm/dd/yyyy',dtp.Date); // solution 1
    sDate := FormatDatetime('dd.mm.yyyy',dtp.Date); // solution 2
    un petit plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sSql :='SELECT * FROM POST WHERE DATEIMP = CAST('+sdate+' AS DATE) 
     and TYPEPOST = '+QuotedStr('Provisoire')+ ' ORDER BY DATEIMP';
    le must à mon avis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sSQL:='SELECT * FROM POST WHERE DATEINP=:D AND TYPEPOST=:P ORDER BY DATEINP'
    qPost.Active := false;
    qPost.SelectSQL.Clear;
    qPost.SelectSQL.Add(sSql);
    qPost.SelectSQL.ParamByName('D').asDate:=dtp.Date;
    qPost.SelectSQL.ParamByName('P').asString:='Provisoire';
    qPost.Active := true;
    bien sur cela du type de composants utilisé mais la philosophie est là

    PS. Utilises des balises (bouton #) pour entourer ton code sur le forum

  3. #3
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut
    Merci pour le tuyau, grâce a toi j'ai plus d'erreur mais la requête ne donne rien mon DBGrid est vide voila code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sDate := FormatDatetime('dd.mm.yyyy',dtp.Date);
    sSQL:='SELECT * FROM POST WHERE DATEIMP=:D AND TYPEPOST=:P ORDER BY DATEIMP' ;
         qPost.Active := false;
         qPost.SelectSQL.Clear;
         qPost.SelectSQL.Add(sSql);
         qPost.ParamByName('D').asDate:=dtp.Date;
         qPost.ParamByName('P').asString:='Provisoire';
         qPost.Active := true;

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Salut;

    je crois qu'il te manque les ":" dans ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL:='SELECT * FROM POST WHERE DATEIMP=:var1 AND TYPEPOST=:var2 ORDER BY DATEIMP'

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 656
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par Just-Soft Voir le message
    Salut;

    je crois qu'il te manque les ":" dans ton code :
    non c'est que le petit vilain n'utilise pas les balises

    mais la requête ne donne rien mon DBGrid est vide
    mais est-ce que des données correspondent , là est la question . Essayes directement avec un outil quelconque (IBexpert) la même (paramètres mis à part) requête

  6. #6
    Membre confirmé Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Par défaut
    toujours rien même sur ibconsole, j'ai exécute la requête la grille est vide et pourtant la valeur recherchée y est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT identite,DATEIMP FROM POST WHERE DATEIMP='20.02.2009'
    mais si je mets ce code ca marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT identite,DATEIMP FROM POST
    et je vois la date recherchée dans la grille

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

Discussions similaires

  1. [interbase][SQL] concatener 2 champs dans le select
    Par Harry dans le forum Bases de données
    Réponses: 10
    Dernier message: 09/03/2006, 06h45
  2. [Date][SQL date][Format] insertion d'une heure
    Par goulime dans le forum JDBC
    Réponses: 11
    Dernier message: 26/01/2004, 11h38
  3. SQL Date
    Par hamed dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/11/2003, 15h18
  4. [Rave][Delphi][Base SQL] besoin d'informations
    Par David Altech dans le forum Rave
    Réponses: 1
    Dernier message: 30/07/2003, 13h59

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