Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre à l'essai
    Profil pro Philippe
    Inscrit en
    octobre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Nom : Philippe
    Âge : 31

    Informations forums :
    Inscription : octobre 2009
    Messages : 44
    Points : 21
    Points
    21

    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 Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 307
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 58
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 307
    Points : 9 685
    Points
    9 685

    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
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  3. #3
    Membre à l'essai
    Profil pro Philippe
    Inscrit en
    octobre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Nom : Philippe
    Âge : 31

    Informations forums :
    Inscription : octobre 2009
    Messages : 44
    Points : 21
    Points
    21

    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 :
    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 :
    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 chevronné
    Profil pro
    Inscrit en
    janvier 2009
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2009
    Messages : 457
    Points : 699
    Points
    699

    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 :
    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 Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 307
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 58
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 307
    Points : 9 685
    Points
    9 685

    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
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •