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 :

Requête SQL en delphi


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut Requête SQL en delphi
    Bonjour,

    Cette ligne de requête marche bien dans dans l'editeur de commande SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select floor(months_between(to_date(sysdate,'dd/mm/yyyy'),to_date(max(ts),'dd/mm/yyyy'))) nb_redevance
    Maintenant je veux l'utiliser en delphi dans un Query, et cela pose problème.
    Voilà ce que j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query_Red.Sql.Add('Select floor(months_between to_date(formatdatetime('dd/mm/yyyy')+','+ 'to_date(max(ts),'dd/mm/yyyy'))) nb_redevance');
    Je rencontre toujours des erreurs à la l'exécution.
    Pouvez-vous m'aider en ce sens.
    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 469
    Points : 24 905
    Points
    24 905
    Par défaut
    Dois-je sortir ma boule de cristal pour deviner le type de composants, de drivers et de DB que tu utilise ? ADO ODBC Oracle ? MyDAC MySQL ? BDE Paradox ?

    Sinon, les deux requêtes ne sont absolument pas identique, ... pourquoi ne pas faire simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query_Red.Sql.Add('Select floor(months_between(to_date(sysdate,''dd/mm/yyyy''),to_date(max(ts),''dd/mm/yyyy''))) nb_redevance');
    Ensuite, tu dois avoir un problème à la compilation, puisque tu as des chaines non terminés, des concaténations n'importe où, ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Citation Envoyé par sondo Voir le message
    Je rencontre toujours des erreurs à la l'exécution.
    Certes mais quelles erreurs ?

    il semble que tu ais un problème de syntaxe.
    uitlises la fonction quotedstr et le débogueur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    try
    Query_Red.Sql.Add('Select floor(months_between to_date(formatdatetime('dd/mm/yyyy')+','+ 'to_date(max(ts),'dd/mm/yyyy'))) nb_redevance');
    except
    on e:exeption do
     showmessage ( Query_Red.Text + slinebreak + e.message);
    end;
    [grillé] Décidemment top lent [/grillé]
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  4. #4
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Salut à tous

    en faisant comme ShaiLeTroll:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query_Red.Sql.Add('Select floor(months_between(to_date(sysdate,''dd/mm/yyyy''),to_date(max(ts),''dd/mm/yyyy''))) nb_redevance');
    Ca marche.
    Voici toute la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Query_Red.Sql.Clear;
            Query_Red.Sql.Add('select  vps.meter.msno,vps.meter.meter_status_id status,inst_date date_installation,substr(vps.location.location_ref,1,20) numero_abonne');
            Query_Red.Sql.Add(',substr(vps.area.area,1,3) section,vps.mrl.maxlimit profil_tarifaire, count(distinct tkn) nb_achat, sum(nvl(UNITS,0)) kWH,max(ts) dernier_achat');
            Query_Red.Sql.Add(',floor(months_between(to_date(sysdate,''dd/mm/yyyy''),to_date(max(ts),''dd/mm/yyyy''))) nb_redevance');
            Query_Red.Sql.Add('from vps.meter,vps.location,vps.trn,vps.mrl,vps.area');
            Query_Red.Sql.Add('where vps.meter.location_id=vps.location.location_id');
            Query_Red.Sql.Add('and vps.meter.msno=vps.trn.msno');
            Query_Red.Sql.Add('and vps.meter.mrl_id=vps.mrl.mrl_id');
            Query_Red.Sql.Add('and vps.area.area_id=vps.location.area_id');
            Query_Red.Sql.Add('and upper(tkn) != ' + QuotedStr('REVERSED'));
            Query_Red.Sql.Add('and floor(months_between(to_date(sysdate,''dd/mm/yyyy''),to_date(max(ts),''dd/mm/yyyy''))) = ' + QuotedStr(Edit1.text));
            Query_Red.Sql.Add('group by vps.meter.msno,vps.meter.meter_status_id ,inst_date ,substr(vps.location.location_ref,1,20) ,substr(vps.area.area,1,3) ,vps.mrl.maxlimit');
            Query_Red.Sql.Add('order by round(months_between(sysdate,max(ts)))  , substr(vps.area.area,1,3),substr(vps.location.location_ref,1,20)');
            Query_Red.Open;
    En l'exécutant j'ai l'erreur suivante : ORA - 934 : Group function is not allowed here.

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 061
    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 061
    Points : 41 021
    Points
    41 021
    Billets dans le blog
    62
    Par défaut
    essayes en mettant le numéro des colonnes plutôt que le noms des champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    group by 1,2,3 .....
    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

Discussions similaires

  1. Requête SQL en delphi 7
    Par yacinew dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/12/2014, 11h52
  2. demande requête sql sous delphi 7
    Par wiski08000 dans le forum Débuter
    Réponses: 15
    Dernier message: 17/12/2013, 16h44
  3. Problème de requète SQL dans Delphi
    Par julesclaude dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/08/2011, 18h02
  4. Requête SQL en Delphi 7 pour access
    Par Dudule89 dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/03/2011, 18h35
  5. requête sql sous delphi
    Par jack2009 dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/09/2009, 19h23

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