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

InterBase Discussion :

Requêtes SQL --> plantage total [Débutant(e)]


Sujet :

InterBase

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2009
    Messages : 44
    Points : 50
    Points
    50
    Par défaut Requêtes SQL --> plantage total
    Bonjour à tous chers développeurs,

    Je viens vers vous, car j'ai un gros gros soucis sur mes requêtes...

    Je me suis lancé depuis peu dans les bases de données (je n'ai pas encore de serveur dédié à cela, cela viendra en son temps quand je saurais maîtrisé le langage, c'est pas encore fait ^^), et qui sait faire des applications électroniques with base de données pour la robotique ou autres montage mais allons par étape, j'y suis pas encore.

    En utilisant ISQL (dans une console de commande) et les requêtes SQL, j'ai voulu commencer à créer ma base avec mes différentes tables et des utilisateurs ; mais le problème c'est que je bute sur la création de la table en elle-même apparemment. Je ne comprend pas l'erreur que je fais...

    Je vous mets le code que j'ai écrit, ainsi que le printscreen de l'erreur.

    Alors si vous voyez une erreur quelconques petites - grandes - monstrueuses ou d'autres remarques,je suis preneur, car là je bloque et je ne comprends pas pourquoi

    Je vous remercie déjà tous de m'avoir lu
    Et attends avec impatience toute vos remarques constructives

    Amicalement le cht'y Philou
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    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 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour ,

    - il vaudrait mieux mettre le chemin complet de la BBD 'C:\ESSAI\client1.idb'
    - USER1 n'est pas propriétaire de la BDD , ce qui pourrait expliquer que ce dernier ne puisse pas créer . Est-ce qu'en créant la table en sysdba ça passe ?

    Ensuite , bien que isql soit digne d'éloge et à moins que cela soit imposé, il existe des GUI (graphic user interface) free bien plus pratiques

    PS. Windows n'aime pas trop les extensions gdb surtout sur le disque principal , donc : a éviter
    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

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2009
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Bonsoir à tous,

    Tout d'abord un GRAND pardon à SM pour ne pas avoir répondu plus tôt à ta réponse... very not pas bien

    En fait j'ai récrit un peu différemment ma requête, et ca a marché ?!?! expliquer le pourquoi du comment, j'en serai bien incapable mais voici le code que j'ai changé, et j'ai aussi suivi ton conseil de changer la base de donnée en ib :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    /* créer une table                                                              */
    /* ---------------                                                              */
    create table client(    
            numero integer not null,   /* sera utilisé comme clé primaire */        
            nom varchar(25),
            adresse varchar(50),
            npa     decimal(4), 
            ville varchar(20),      
            constraint PK_client primary key(numero) /* définition de la clé primaire */
    );
    Mais comme je suis de retour ici, vous vous doutez bien cher lecteur, c'est que j'ai encore des soucis et que je n'ai pas réussi à me débrouiller tout seul...

    enfin voilà mon nouveau problème :

    Voilà j'ai créé 2 tables :
    1) client avec les attributs suivants : numero_cli (clé primaire), nom_cli, adresse, npa, ville
    2) commande avec les attribut suivants : numero_cmd (clé primaire), numero_cli, libelle, montant

    j'ai réussi à créer mes tables correctement, ca c'est bon...

    Maintenant je fais des tests avec des utilisateurs 1 et 2, le 1 à tout les droits, mais le 2ème ne peut voir que ce que l'utilisateur 1 à définit dans des vues, vous me suivez ??

    et c'est la que ca bloque : je définit ma vue à l'aide de l'utilisateur 1 :

    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
     
    /* connexion en tant que user1 */
    connect 'client1g.ib' user user1 password 'user1';      
     
    /* création d'une vue : vue1 */
    create view vue1 (nom, total) as 
    select client.nom, sum(commande.montant) 
    from client, commande
    where client.numero =  commande.client;                                 
     
    /* visualisation de la vue 1 */
    select *
    from vue1;
    je vous mets encore en la photo de ma copie d'écran de mon invite de commande, pour les codes erreurs, du reste je me demande si il n'existe pas des tables d'erreur SQL pour que l'on sache ce que l'on fait de faut... j'ai pas trouvé ca avec notre ami google ...

    Alors je garde les yeux tout écarquillés pour lire vos futures messages, et je vous remercie déjà de me lire... si vous avez des remarques ou autres, c'est bien volontiers que j'essaierai de répondre...

    A tout bientôt
    Amicalement le cht'y Philou
    Images attachées Images attachées  

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    Je pense que ta vue comporte des erreurs.

    Pour les jointures, il vaut mieux, il me semble, utiliser la nouvelle présentation.

    Voici un projet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE VIEW vue1 (Numero_cli, vtotal) AS 
    SELECT C.numero_cli, sum(D.montant) as vTotal
    FROM client C
       INNER JOIN Commande D on C.numero_cli = D.numero_cli
    GROUP BY c.Numero_cli
    Si tu veux présenter les clients qui n'ont aucun total, alors il sera necessaire de remplacer "Inner Join" par "Left Join"

    Il semble préférable de faire le total sur l'index du client que sur le nom, car il est possible d'avoir deux noms identiques pour deux clients différents. Dans cette situation, le totalisation sera inexacte.

    Il est important de préfixer les noms des tables pour une meilleure lisibilité et une correction plus rapide.

    Si tu veux les noms dans ta VUE, il conviendra de la modifier, nous verrons le moment venu.

    Pour total, il ne s'agit pas d'un mot réservé dans Interbase. Pour certaines bases, il n'est pas utilisable. Je n'ai fait aucune recherche.

    Voilà, tu fais les tests et nous donnes tes résultats.

    A plus.

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    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 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    je 'plussoie' seabs

    pour ce qui est des codes erreurs , firebird 1.5 étant tres proche de Interbase voici déjà un doc http://www.firebirdsql.org/file/docu...ErrorCodes.pdf
    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: 30/11/2014, 21h44
  2. Problème de requête SQL pour donner le total
    Par danilo41 dans le forum C#
    Réponses: 2
    Dernier message: 20/08/2012, 13h00
  3. Total dans requête sql
    Par sherve dans le forum Langage SQL
    Réponses: 12
    Dernier message: 13/04/2011, 16h49
  4. [SQL] Requête SQL : obtenir un total
    Par Riwalenn dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/09/2006, 10h19
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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