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

 Delphi Discussion :

programme SQL delphi 7


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    oui
    Inscrit en
    Septembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : oui
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 29
    Points : 17
    Points
    17
    Par défaut programme SQL delphi 7
    salut mes amies
    j'ai un problème de programme du SQL

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    procedure TFetat_operation.Button1Click(Sender: TObject);
    begin
    FEtat_sorti_op.query1.SQL.Clear;
    FEtat_sorti_op.Query1.SQL.Add('select*');
    FEtat_sorti_op.Query1.SQL.Add('from avoir ,operation ,rubrique');
    FEtat_sorti_op.Query1.SQL.Add(' where operation.Num_op ='+Edit1.Text+'and operation.Num_op=avoir.Num_op and rubrique.Num_reb=avoir.Num_reb and avoir.cout_ant=1 and avoir.cout_act=1 and rubrique.dési_rub=1');
    FEtat_sorti_op.query2.SQL.Clear;
    FEtat_sorti_op.Query2.SQL.Add('select*');
    FEtat_sorti_op.Query2.SQL.Add('from avoir ,operation , rubrique');
    FEtat_sorti_op.Query2.SQL.Add(' where operation.Num_op ='+Edit1.Text +'and operation.Num_op=avoir.Num_op and rubrique.Num_reb=avoir.Num_reb and avoir.cout_ant=2 and avoir.cout_act=2  and rubrique.dési_rub=2');
    FEtat_sorti_op.query3.SQL.Clear;
    FEtat_sorti_op.Query3.SQL.Add('select*');
    FEtat_sorti_op.Query3.SQL.Add('from avoir ,operation , rubrique');
    FEtat_sorti_op.Query3.SQL.Add(' where operation.Num_op ='+Edit1.Text +'and operation.Num_op=avoir.Num_op and rubrique.Num_reb=avoir.Num_reb and avoir.cout_ant=3 and avoir.cout_act=3 and  rubrique.dési_rub=3');
    FEtat_sorti_op.query4.SQL.Clear;
    FEtat_sorti_op.Query4.SQL.Add('select*');
    FEtat_sorti_op.Query4.SQL.Add('from avoir ,operation , rubrique');
    FEtat_sorti_op.Query4.SQL.Add(' where operation.Num_op ='+Edit1.Text +'and operation.Num_op=avoir.Num_op and rubrique.Num_reb=avoir.Num_reb  and avoir.cout_ant=4 and avoir.cout_act=4 and  rubrique.dési_rub=4');
    FEtat_sorti_op.Query1.Active:=True;
    FEtat_sorti_op.Query2.Active:=true;
    FEtat_sorti_op.Query3.Active:=true;
    FEtat_sorti_op.Query4.Active:=true;
    FEtat_sorti_op.QuickRep1.Preview;
    end;
     
    procedure TFetat_operation.Button2Click(Sender: TObject);
    begin
    FEtat_sorti_op.query1.SQL.Clear;
    FEtat_sorti_op.Query1.SQL.Add ('select*');
    FEtat_sorti_op.Query1.SQL.Add ('from avoir ,operation , rubrique');
    FEtat_sorti_op.Query1.SQL.Add (' where operation.Num_op ='+Edit1.Text+'and operation.Num_op=avoir.Num_op and rubrique.Num_reb=avoir.Num_reb  and avoir.cout_ant=1 and avoir.cout_act =1 and  rubrique.dési_rub=1');
    FEtat_sorti_op.query2.SQL.Clear;
    FEtat_sorti_op.Query2.SQL.Add ('select*');
    FEtat_sorti_op.Query2.SQL.Add ('from avoir ,operation , rubrique');
    FEtat_sorti_op.Query2.SQL.Add (' where operation.Num_op ='+Edit1.Text+'and operation.Num_op=avoir.Num_op and rubrique.Num_reb=avoir.Num_reb   and avoir.cout_ant=2 and avoir.cout_act=2 and  rubrique.dési_rub=2');
    FEtat_sorti_op.query3.SQL.Clear;
    FEtat_sorti_op.Query3.SQL.Add ('select*');
    FEtat_sorti_op.Query3.SQL.Add ('from avoir ,operation , rubrique');
    FEtat_sorti_op.Query3.SQL.Add (' where operation.Num_op ='+Edit1.Text+'and operation.Num_op=avoir.Num_op and rubrique.Num_reb=avoir.Num_reb    and avoir.cout_ant=3 and avoir.cout_act=3 and  rubrique.dési_rub=3');
    FEtat_sorti_op.query4.SQL.Clear;
    FEtat_sorti_op.Query4.SQL.Add ('select*');
    FEtat_sorti_op.Query4.SQL.Add ('from avoir ,operation , rubrique');
    FEtat_sorti_op.Query4.SQL.Add (' where operation.Num_op ='+Edit1.Text +'and operation.Num_op=avoir.Num_op and rubrique.Num_reb=avoir.Num_reb   and avoir.cout_ant=4 and avoir.cout_act=4 and  rubrique.dési_rub=4');
    FEtat_sorti_op.Query1.Active:=True;
    FEtat_sorti_op.Query2.Active:=true;
    FEtat_sorti_op.Query3.Active:=true;
    FEtat_sorti_op.Query4.Active:=true;
    FEtat_sorti_op.QuickRep1.Print;
    end;
    j'ai un message ERREUR qui dit
    différence type dans une expression
    remarque :
    c'est un modèle Externe
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Slt, je vous propose de testé requête par requête pour savoir la quelle elle génère l'erreur ...! ensuite cherche peut être c'est due aux affectations des paramètres .

  3. #3
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Je fairais QuoteStr(edit1.Text) à la place de edit1.Text. Je privilégie les requêtes paramétrées.

  4. #4
    Membre à l'essai
    Homme Profil pro
    oui
    Inscrit en
    Septembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : oui
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 29
    Points : 17
    Points
    17
    Par défaut programme SQL delphi 7
    Slt
    oui bien sur
    j'ai tester le programme requête par requête mais toujours le même message erreur

  5. #5
    Membre à l'essai
    Homme Profil pro
    oui
    Inscrit en
    Septembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : oui
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 29
    Points : 17
    Points
    17
    Par défaut programme SQL delphi 7
    voila le message ERREUR
    Notification d'une exception du débogueur
    ---------------------------
    Le projet Project2.exe a provoqué une classe d'exception EDBEngineError avec le message 'Différence de type dans une expression.'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer.

  6. #6
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Essaie de copier le contenu de FEtat_sorti_op.Query1.SQL.text et exécute le directement dans le client de ta base(je ne trouve plus le nom de ce type de logiciel) .ex: SQLPlus WorkSheet pour Oracle
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  7. #7
    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
    Je pense qu'il faut un espace entre le Select et *.

    Sinon pourquoi faire 4 requêtes alors qu'avec une seule et un filtre pour récupérer les données serait mieux
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  8. #8
    Membre à l'essai
    Homme Profil pro
    oui
    Inscrit en
    Septembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : oui
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    si
    par ce que on a 4 cout actuel et 4 cout antérieur et 4 désignation rubrique finance
    si pour sa il y 4 requête

    voila la requête que j'ai fait dans les 4 QUERy
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     select*
    from operation ,rubrique ,avoir
    where  operation.Num_op  =avoir.Num_op   and
    rubrique.Num_reb=avoir.Num_reb

  9. #9
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    En mode pas à pas, est-ce que tu as essayé de copier le contenu de FEtat_sorti_op.Query1.SQL.text, ou ne serait-ce que remplacer Edit1.text par une valeur quelconque? (C'est la base pour déboguer).

    ça a bien l'air d'être un problème d'espace.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  10. #10
    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
    Quel est le type du champ operation.Num_op ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    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 021
    Points : 40 931
    Points
    40 931
    Billets dans le blog
    62
    Par défaut
    +1 avec Rayek le champ operation.Num_op est-il bien comme suggéré par le nom , numérique ?
    je note aussi le * bien trop près du SELECT (déjà cité)
    mais aussi le é du champ rubrique.dési_rub , je ne suis pas sur que BDE apprécie .
    Pour finir , et debugger , puisque cela semble du BDE est-ce que tu as testé les SQL séparemment via l'explorateur de Base de données ?
    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

  12. #12
    Membre à l'essai
    Homme Profil pro
    oui
    Inscrit en
    Septembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : oui
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 29
    Points : 17
    Points
    17
    Par défaut programme sql delphi7
    salut Rayek
    le champ operation.Num_op c'est un champ Alpha Numérique (AN), mais
    au paradox il s'affiche (A)

  13. #13
    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
    Citation Envoyé par bhami9 Voir le message
    salut Rayek
    le champ operation.Num_op c'est un champ Alpha Numérique (AN), mais
    au paradox il s'affiche (A)
    Donc il te faut ajouter QuotedStr() sur tes Edit1.text pour que cela fonctionne (Rappel que pour les bases de données, il faut que les champs de type Alphanumérique soient encadrés par le délimiteur de la base de données).
    Sinon pour éviter les problèmes de ce genre, le mieux est de passer par les paramètres
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  14. #14
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    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 021
    Points : 40 931
    Points
    40 931
    Billets dans le blog
    62
    Par défaut
    ce qui ne serait pas arrivé en utilisant une requête paramétrée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     FEtat_sorti_op.query1.SQL.Clear;
    FEtat_sorti_op.Query1.SQL.Add('select*');
    FEtat_sorti_op.Query1.SQL.Add('from avoir ,operation ,rubrique');
    FEtat_sorti_op.Query1.SQL.Add(' where operation.Num_op =:N');
    ...
    FEtat_sorti_op.ParamByName('N').asString:=Edit1.Text;
    ..
    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. Réponses: 5
    Dernier message: 09/07/2007, 12h57
  2. Comment utiliser Between entre 2 dates en SQL DELPHI/Paradox
    Par tarbala dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/04/2006, 11h33
  3. Comment gérer des services par programmation avec Delphi ?
    Par isachat666 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 18/12/2005, 19h54
  4. [Kylix] Problème au lancement d'un programme
    Par jeanbi dans le forum EDI
    Réponses: 7
    Dernier message: 20/01/2005, 00h00
  5. SQL+DELPHI
    Par fastzombi dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/04/2004, 17h08

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