Subject | BUG: wrong auto generatd UPDATE SQL queries |
---|---|
Author | mmenaz@lycosmail.com |
Post date | 2001-03-22T17:22:14Z |
IBO 3.6.Cf
With the table:
CREATE TABLE CONTATTI_U_CATEGORIE (
CONTATTO_ID INTEGER NOT NULL,
CATEGORIA_ID CATEGORIAIDTYPE NOT NULL);
ALTER TABLE CONTATTI_U_CATEGORIE ADD CONSTRAINT
PK_CONTATTI_U_CATEGORIE PRIMARY KEY (CONTATTO_ID, CATEGORIA_ID);
I've the following property defined in IB_Query:
***SQL
SELECT CONTATTI_U_CATEGORIE.CONTATTO_ID,
CONTATTI_U_CATEGORIE.CATEGORIA_ID,
CATEGORIE.DESCRIZIONE
FROM CATEGORIE
INNER JOIN CONTATTI_U_CATEGORIE ON (CATEGORIE.CATEGORIA_ID =
CONTATTI_U_CATEGORIE.CATEGORIA_ID)
INNER JOIN CONTATTI ON (CONTATTI_U_CATEGORIE.CONTATTO_ID =
CONTATTI.CONTATTO_ID)
***KEY LINKS
CONTATTO_ID
CATEGORIA_ID
***MASTER LINKS
CONTATTI_U_CATEGORIE.CONTATTO_ID = CONTATTI.CONTATTO_ID
***ORDERING
Categoria=CATEGORIA_ID
When I go to the "UPDATE SQL" tab, and I press the button
"generate for table" choosing table "CONTATTI_U_CATEGORIE", the
following WRONG SQL is generated (except what included into [xx], that
are my comments):
INSERT INTO CONTATTI_U_CATEGORIE(
CATEGORIA_ID, /*PK*/
CONTATTO_ID, /*PK*) [----- error!!!]
VALUES (
:CATEGORIA_ID,
:CONTATTO_ID)
instead of:
INSERT INTO CONTATTI_U_CATEGORIE(
CATEGORIA_ID, /*PK*/
CONTATTO_ID /*PK*/)
VALUES (
:CATEGORIA_ID,
:CONTATTO_ID)
and
UPDATE CONTATTI_U_CATEGORIE SE [----- error!!!]
[----- error!!!]
WHERE
CATEGORIA_ID= :OLD_CATEGORIA_ID AND
CONTATTO_ID= :OLD_CONTATTO_ID
Instead of:
UPDATE CONTATTI_U_CATEGORIE SET
CATEGORIA_ID = :CATEGORIA_ID
WHERE
CATEGORIA_ID= :OLD_CATEGORIA_ID AND
CONTATTO_ID= :OLD_CONTATTO_ID
Thanks
Marco Menardi
With the table:
CREATE TABLE CONTATTI_U_CATEGORIE (
CONTATTO_ID INTEGER NOT NULL,
CATEGORIA_ID CATEGORIAIDTYPE NOT NULL);
ALTER TABLE CONTATTI_U_CATEGORIE ADD CONSTRAINT
PK_CONTATTI_U_CATEGORIE PRIMARY KEY (CONTATTO_ID, CATEGORIA_ID);
I've the following property defined in IB_Query:
***SQL
SELECT CONTATTI_U_CATEGORIE.CONTATTO_ID,
CONTATTI_U_CATEGORIE.CATEGORIA_ID,
CATEGORIE.DESCRIZIONE
FROM CATEGORIE
INNER JOIN CONTATTI_U_CATEGORIE ON (CATEGORIE.CATEGORIA_ID =
CONTATTI_U_CATEGORIE.CATEGORIA_ID)
INNER JOIN CONTATTI ON (CONTATTI_U_CATEGORIE.CONTATTO_ID =
CONTATTI.CONTATTO_ID)
***KEY LINKS
CONTATTO_ID
CATEGORIA_ID
***MASTER LINKS
CONTATTI_U_CATEGORIE.CONTATTO_ID = CONTATTI.CONTATTO_ID
***ORDERING
Categoria=CATEGORIA_ID
When I go to the "UPDATE SQL" tab, and I press the button
"generate for table" choosing table "CONTATTI_U_CATEGORIE", the
following WRONG SQL is generated (except what included into [xx], that
are my comments):
INSERT INTO CONTATTI_U_CATEGORIE(
CATEGORIA_ID, /*PK*/
CONTATTO_ID, /*PK*) [----- error!!!]
VALUES (
:CATEGORIA_ID,
:CONTATTO_ID)
instead of:
INSERT INTO CONTATTI_U_CATEGORIE(
CATEGORIA_ID, /*PK*/
CONTATTO_ID /*PK*/)
VALUES (
:CATEGORIA_ID,
:CONTATTO_ID)
and
UPDATE CONTATTI_U_CATEGORIE SE [----- error!!!]
[----- error!!!]
WHERE
CATEGORIA_ID= :OLD_CATEGORIA_ID AND
CONTATTO_ID= :OLD_CONTATTO_ID
Instead of:
UPDATE CONTATTI_U_CATEGORIE SET
CATEGORIA_ID = :CATEGORIA_ID
WHERE
CATEGORIA_ID= :OLD_CATEGORIA_ID AND
CONTATTO_ID= :OLD_CONTATTO_ID
Thanks
Marco Menardi