Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2006, 20h57   #1
Membre émérite
 
Inscription : octobre 2003
Messages : 1 160
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2003
Messages : 1 160
Points : 882
Points : 882
Par défaut [FB] Problème de conversion en String lors d'un INSERT ?

Bonjour à tous,

je me suis finalement décider à utiliser Firebird pour mon projet utilisant une base de donnée de type fichier.

J'ai réussi à créer ma base de donnée et je souhaite maintenant la remplir de données pour effectuer des tests.

Ma première table aucun problème, la deuxième par contre....
Ci-dessous le code SQL pour créer les deux premières tables :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE TABLE T_Festivals (
	IdFestival		INTEGER				NOT NULL PRIMARY KEY,
	Nom			VARCHAR(35)			NOT NULL,
	License1		VARCHAR(20),
	License2		VARCHAR(20),
	Billet		        BLOB
);
 
CREATE TABLE T_Concerts (
	IdConcert		INTEGER				NOT NULL PRIMARY KEY,
	IdFestival		INTEGER				NOT NULL,
	Nom			VARCHAR(50)			NOT NULL,
	Lieu			VARCHAR(50)			NOT NULL,
	DateConcert             TIMESTAMP                       NOT NULL,
	NbPlaces		INTEGER				NOT NULL CHECK( "NbPlaces" > 0 ),
 
	CONSTRAINT		FK_Concert_Festival		FOREIGN KEY (IdFestival) 	REFERENCES T_Festivals(IdFestival)
);
Voici les deux enregistrements qui se trouvent dans ma table T_Festivals :

Citation:
Envoyé par T_Festivals
IDFESTIVAL,NOM,LICENSE1,LICENSE2
0,Festival de test,12313513,135135
1,Deuxième festival,1531634,34654
Ensuite j'essaye d'insérer un enregistrement dans ma deuxième table T_Concerts :
Code :
INSERT INTO T_CONCERTS VALUES ( 0, 1, "Test", "Test", '2006-02-02', 500 );
Lors de l'exécution de cette requête voici le message d'erreur que j'obtiens (j'utilise MiTeC IB Query) :
Citation:
Envoyé par Message d'erreur
Statement #1:
conversion error from string "NbPlaces"
J'avoue ne pas comprendre pourquoi et si quelqu'un à une explication à me fournir je suis preneur !

Merci d'avance pour votre aide !
__________________
Neilos
Neilos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 22h05   #2
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Citation:
Code :
NbPlaces      INTEGER            NOT NULL CHECK( "NbPlaces" > 0 ),

D'après la doc IB, quand un check référence une colonne, il ne faut pas la mentionner entre quotes (")

Essaie ainsi:
Code :
NbPlaces      INTEGER            NOT NULL CHECK(NbPlaces > 0 ),
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 22h12   #3
Membre émérite
 
Inscription : octobre 2003
Messages : 1 160
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2003
Messages : 1 160
Points : 882
Points : 882
C'était ça

Merci beaucoup !
__________________
Neilos
Neilos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 22h43   #4
Membre émérite
 
Inscription : octobre 2003
Messages : 1 160
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2003
Messages : 1 160
Points : 882
Points : 882
Hmm j'ai encore un problème...une fois cela corrigé il me dit violation de la contrainte d'intégrité sur IdFestival dans T_CONCERTS.

En fait quand j'y regarde de plus près il m'indique que la table de la contrainte est IdFestivals et la colonne T_FESTIVALS. En inversant dans mon code SQL cela ne fonctionne plus...

EDIT : Le message d'erreur est précisement :
Citation:
unsuccessful metadata update could not find UNIQUE INDEX with specified columns
Je suis désolé, pourtant je connais le SQL mais j'avoue que Firebird me déroute un peu...
__________________
Neilos
Neilos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2006, 11h06   #5
Inscrit
 
Inscription : mai 2004
Messages : 759
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 759
Points : 288
Points : 288
pourquoi ne pas renommer le champ dans la table T_Concerts.
devalender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2006, 11h11   #6
Inscrit
 
Inscription : mai 2004
Messages : 759
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 759
Points : 288
Points : 288
et ajouter le code suivant dans le sript de creation
Code :
1
2
 
ALTER TABLE  T_Concert  ADD  CONSTRAINT      FK_Concert_Festival      FOREIGN KEY (IdFestival_1)    REFERENCES T_Festivals(IdFestival)
devalender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2006, 18h23   #7
Membre émérite
 
Inscription : octobre 2003
Messages : 1 160
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2003
Messages : 1 160
Points : 882
Points : 882
En fait ça marche, j'ai oublié de fermer le sujet.
Mais je ne me rappel plus ce que j'ai changé pour que ça marche, une erreur idiote je crois.

Merci quand même !
__________________
Neilos
Neilos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h45.


 
 
 
 
Partenaires

Hébergement Web