Salut,
Soit le code suivant:
J'essaye d'exécuter cette requête SQL avec delphi 7 avec TIBQuery mais je reçois à ma grande supprise cette erreur que je comprend pas vu que je dsipose meme pas de donnée dans mes tables et que je peux activer la propriété active du TIBQuery:
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 SELECT P.DATE_P, P.GROUPE_P, (SELECT P1.INDEX_JOUR FROM PRODUCTION P1 WHERE P1.SOCIETE = :SOCIETE AND P1.DATE_P = (SELECT MAX(P2.DATE_P) FROM PRODUCTION P2 WHERE P2.SOCIETE = :SOCIETE AND P2.DATE_P < P.DATE_P )) AS INDEX_DEBUT, P.INDEX_JOUR AS INDEX_FIN, (SELECT CASE WHEN P.GROUPE_P = H.GROUPE1 THEN H.GROUPE2 WHEN P.GROUPE_P = H.GROUPE2 THEN H.GROUPE1 END FROM HEURE_FONCTIONNEMENT H WHERE H.SOCIETE = :SOCIETE AND H.DATE_R = P.DATE_P) AS GROUPE_SECONDAIRE, (SELECT CASE WHEN P.GROUPE_P = H.GROUPE1 THEN H.NOMBRE_HEURE_GROUPE1 WHEN P.GROUPE_P = H.GROUPE2 THEN H.NOMBRE_HEURE_GROUPE2 END FROM HEURE_FONCTIONNEMENT H WHERE H.SOCIETE = :SOCIETE AND H.DATE_R = P.DATE_P) AS NOMBRE_HEURE_GROUPE_PRINCIPAL, (SELECT CASE WHEN P.GROUPE_P = H.GROUPE1 THEN H.NOMBRE_HEURE_GROUPE2 WHEN P.GROUPE_P = H.GROUPE2 THEN H.NOMBRE_HEURE_GROUPE1 END FROM HEURE_FONCTIONNEMENT H WHERE H.SOCIETE = :SOCIETE AND H.DATE_R = P.DATE_P) AS NOMBRE_HEURE_GROUPE_SECONDAIRE, (SELECT CASE WHEN P.GROUPE_P = C.GROUPE1 THEN AVG(C.I_MAX_G2) WHEN P.GROUPE_P = C.GROUPE2 THEN AVG(C.I_MAX_G1) END FROM CHARGE C WHERE C.SOCIETE = :SOCIETE AND C.DATE_R = P.DATE_P) AS INTENSITE FROM PRODUCTION P WHERE P.SOCIETE = :SOCIETE AND P.DATE_P BETWEEN :DEBUT AND :FIN ORDER BY P.DATE_P
J'utilise Interbase 7.5 sous delphi 7
Quelqu'un pourrai interpréter cette erreur pour moi?---------------------------
Notification d'une exception du débogueur
---------------------------
Le projet CENTRALE.exe a provoqué une classe d'exception EIBInterBaseError avec le message 'Dynamic SQL Error
SQL error code = -303
arithmetic exception, numeric overflow, or string truncation'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer.
---------------------------
OK Aide
---------------------------
Voici la structure de mes 3 tables:
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 CREATE TABLE "PRODUCTION" ( "CODE" VARCHAR(6) NOT NULL, "SOCIETE" VARCHAR(3) NOT NULL, "DATE_P" DATE NOT NULL, "INDEX_JOUR" NUMERIC(9, 2) NOT NULL, "GROUPE_P" INTEGER NOT NULL, PRIMARY KEY ("CODE"), UNIQUE ("SOCIETE", "DATE_P") ); CREATE TABLE "HEURE_FONCTIONNEMENT" ( "CODE" VARCHAR(6) NOT NULL, "SOCIETE" VARCHAR(3) NOT NULL, "DATE_R" DATE NOT NULL, "CODE_JOUR" INTEGER NOT NULL, "NOMBRE_HEURE_CENTRALE" INTEGER NOT NULL, "DETAILS_HEURES" VARCHAR(75), "RALLONGE" INTEGER DEFAULT 0, "DEMANDEUR_RALLONGE" VARCHAR(35), "GROUPE1" INTEGER NOT NULL, "NOMBRE_HEURE_GROUPE1" INTEGER DEFAULT 0, "GROUPE2" INTEGER DEFAULT 0, "NOMBRE_HEURE_GROUPE2" INTEGER DEFAULT 0, "OBSERVATIONS" VARCHAR(60), UNIQUE ("DATE_R", "SOCIETE"), PRIMARY KEY ("CODE") ); CREATE TABLE "CHARGE" ( "CODE" VARCHAR(8) NOT NULL, "SOCIETE" VARCHAR(3) NOT NULL, "DATE_R" DATE NOT NULL, "HEURE_R" TIME NOT NULL, "GROUPE1" INTEGER NOT NULL, "I_MAX_G1" NUMERIC(5, 2) NOT NULL, "GROUPE2" INTEGER, "I_MAX_G2" NUMERIC(5, 2), PRIMARY KEY ("CODE"), UNIQUE ("SOCIETE", "DATE_R", "HEURE_R") );
Partager