Précédent   Forum du club des développeurs et IT Pro > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/02/2012, 14h21   #1
philouxy
Membre à l'essai
 
Philippe
Inscription : octobre 2009
Messages : 44
Détails du profil
Informations personnelles :
Nom : Philippe
Âge : 30

Informations forums :
Inscription : octobre 2009
Messages : 44
Points : 21
Points : 21
Envoyer un message via MSN à philouxy
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
Type de fichier : jpg print_screen.JPG (253,0 Ko, 12 affichages)
Fichiers attachés
Type de fichier : txt pratique_bd_2.sql.txt (1,7 Ko, 5 affichages)
philouxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2012, 08h44   #2
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 207
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 4 207
Points : 7 265
Points : 7 265
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
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2012, 22h24   #3
philouxy
Membre à l'essai
 
Philippe
Inscription : octobre 2009
Messages : 44
Détails du profil
Informations personnelles :
Nom : Philippe
Âge : 30

Informations forums :
Inscription : octobre 2009
Messages : 44
Points : 21
Points : 21
Envoyer un message via MSN à philouxy
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
Type de fichier : jpg sql_erreur.JPG (21,9 Ko, 4 affichages)
philouxy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2012, 08h54   #4
seabs
Membre chevronné
 
Inscription : janvier 2009
Messages : 397
Détails du profil
Informations personnelles :
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2009
Messages : 397
Points : 640
Points : 640
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.
seabs est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/03/2012, 09h37   #5
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 207
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 4 207
Points : 7 265
Points : 7 265
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
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h18.


 
 
 
 
Partenaires

Hébergement Web