Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   alter table error (https://www.clubdelphi.com/foros/showthread.php?t=13304)

JoseQ 13-08-2004 12:54:25

alter table error
 
trabajo con ibexpert atacando sobre firebird 1.5
al intentar añadir una clave ajena me genera este error:

---------- ERROR MESSAGE ----------
This operation is not defined for system tables.
unsuccessful metadata update.
MODIFY RDB$RELATIONS failed.
lock conflict on no wait transaction.
deadlock.
update conflicts with concurrent update.


la sentencia,


alter table DISCOS
add constraint FK_DISCOS_SOPORTES
foreign key (SOPORTE)
references SOPORTE(CODIGO_SOPORTE)

entiendo, por el error, que la tabla esta blokeada,pero nose a que se debe, soy novato con firebird y algo algo perdido, gracias

El_Perrito 13-08-2004 16:29:06

Hola JoseQ:
No sera ke estas utilizando la base de datos en otro lado cuand quieres ejecutar la sentencia? verifica ke solo donde quieres ejecutarla tengas abierta la BD

JoseQ 13-08-2004 16:55:34

no esta abierta en otro lugar, xo es iwal, ya controlare con delphi ese aspecto para respetar la integridad referencial, otra cosilla,estoy intentando referirme a la fecha actual pero nose que funcion utilizar, en oracle utilizaba sysdate, pero no coge, alguien conoce la funcion ?gracias


---------- STATEMENT ----------
CREATE TRIGGER PRESTAMOS_BD0 FOR PRESTAMOS
ACTIVE BEFORE DELETE POSITION 0
AS
begin
INSERT INTO prestado VALUES(PRESTAMOS.id_prestamo,PRESTAMOS.id_disco,
PRESTAMOS.persona,PRESTAMOS.fecha,SYSDATE);
end

---------- ERROR MESSAGE ----------
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
SYSDATE.
At line 6, column 37.

JoseQ 13-08-2004 18:25:55

lo solucione asi SELECT CAST('now' AS DATE) FROM RDB$DATABASEprobe con current_date xo uso dialecto 1

alguien me puede explicar las diferencias entre el 1 i el 3 ?

jachguate 13-08-2004 20:47:45

Cita:

Empezado por JoseQ
alguien me puede explicar las diferencias entre el 1 i el 3

El dialecto 1 es el existente hasta interbase 5.x, y no cumple con el estándar SQL'92. Por ejemplo, el tipo de datos DATE es en realidad un TIMESTAMP. Tampoco tiene el tipo BigInt.

Ya no recuerdo exactamente, pero creo que la sintaxis de los joins y alguna que otra yerba varian entre dialectos.

A partir de IB6, y todas las versiones de Firebird, siguen soportando el dialecto 1, para que puedan correrse transparentemente sobre ellos aplicaciones viejas. No se recomienda el uso del dialecto 1 para nuevos desarrollos, y en cambio si es recomendable "traducir" las viejas aplicaciones para que usen el dialecto 3.

Otra cosa es que en el dialecto 1, todos los objetos se nombran con mayúsculas. En el dialecto 3, podes tener diferentes combinaciones de mayúsculas y minúsculas.... es decir, podes tener una tabla "mitabla", otra "MiTabla" y otra "MITABLA".

Se que mi respuesta es mas bien empírica, pues aún cuando en su momento leí bastante sobre el tema, hace mucho que no uso el dialecto 1 y mi memoria es bastante mala... pero en algo te aclara.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 11:51:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi