Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 24
ArdiIIa Va por buen camino
Cita:
Empezado por josemmerida
Im-pre-sio-nan-te.

Lo mismo pasa con selecciones del tipo select a,b from tabla order by c en Interbase estaban permitidas en Firebird no, o añades el campo por el que quieres ordenar, o cambias el ampo del orden.
Saludos y Gracias.
La versión DOS aporta nueva e interesantes extensiones tal como esta:

Código SQL [-]
EXECUTE STATEMENT  'SELECT COUNT(*) FROM  ' || TABLA || 'order by ' || campo

Super potente pero... EXECUTE STATEMENT is potentially dangerous, because:
........
.....
...
..
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #2  
Antiguo 13-02-2007
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 378
Poder: 24
lbuelvas Va por buen camino
Si hay algunas diferencias entre Interbase 6.0 y Firebird. Hablare de Firebird 1.5.3 pues no he migrado apliaciones a la version 1.5.4 o 2.0 hasta ver que el producto ande mas estable, entendiendo por mas estable que no aparezca algun bug que afecte directamente el comportamiento de mis aplicaciones.

Muy respetuosamente y a pesar del excelente trabajo de quienes estan construyuendo el producto Firebird, han aparecido defectos por correccion de otros defectos, entonces uno debe ser un poco responsable con el cliente y no lanzarse a cambiar de versiones del motor de base de datos por el simple hecho que aparece una nueva version, yo ya he tenido problemas con eso.

Una de las diferencias esta en las consultas, Firebird es muy exigente (cosa que me alegra) cuando se hacen consultas con uniones (joins) si las tablas que participan contienen nombre de columnas iguales, debe explicitamente indicarse a que tabla se hare referencia en la consulta. Por ejemplo dada las siguientes tablas y con datos:

Código SQL [-]
CREATE TABLE TABLA_A (
    ID_A   INTEGER NOT NULL,
    VALOR  VARCHAR(10) NOT NULL
);


CREATE TABLE TABLA_B (
    ID_B   INTEGER NOT NULL,
    ID_A   INTEGER,
    VALOR  VARCHAR(10)
);


INSERT INTO TABLA_A (ID_A, VALOR) VALUES (1, 'CASO X');
INSERT INTO TABLA_A (ID_A, VALOR) VALUES (2, 'CASO Y');
INSERT INTO TABLA_A (ID_A, VALOR) VALUES (3, 'CASO Z');

COMMIT WORK;

INSERT INTO TABLA_B (ID_B, ID_A, VALOR) VALUES (1, 1, 'A');
INSERT INTO TABLA_B (ID_B, ID_A, VALOR) VALUES (2, 1, 'B');
INSERT INTO TABLA_B (ID_B, ID_A, VALOR) VALUES (3, 1, 'C');

COMMIT WORK;

ALTER TABLE TABLA_A ADD CONSTRAINT PK_TABLA_A PRIMARY KEY (ID_A);
ALTER TABLE TABLA_B ADD CONSTRAINT PK_TABLA_B PRIMARY KEY (ID_B);
ALTER TABLE TABLA_B ADD CONSTRAINT FK_TABLAB_TABLAA FOREIGN KEY (ID_A) REFERENCES TABLA_A (ID_A);

La siguiente consulta
Código SQL [-]
select id_a, a.valor, b.valor
from       tabla_a a
inner join tabla_b b on (a.id_a = b.id_b)

generar el error: Ambiguous field name between table TABLA_A and table TABLA_B. ID_A.

Para corregrilo debe indicarse de que tabla debe tomar el valor del campo id_a asi:

Código SQL [-]
select a.id_a, a.valor, b.valor
from       tabla_a a
inner join tabla_b b on (a.id_a = b.id_b)

Hay otra diferencia entre las versiones 1.5.2 y 1.5.3 de Firebird, resulta que en el hilo
http://www.clubdelphi.com/foros/showthread.php?t=22117, sugeri con Firebird 1.5.2 hacer una especie de Break en un procedimiento almacenado y me funciono. Pero en Firebird 1.5.3 ya no funciona, pues existen las sentencias LEAVE y BREAK, disponibles desde la version 1.5.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #3  
Antiguo 13-02-2007
josemmerida josemmerida is offline
Miembro
 
Registrado: nov 2003
Ubicación: Málaga(España)
Posts: 60
Poder: 23
josemmerida Va por buen camino
Me refiero a que en un Triger After no se puede asignar valor a la variable de campo new. En Interbase se podia hacer pero no tenia ningun efecto sobre el valor del campo. En Firebird ya no se puede hacer. Por supuesto en los triger Before si.

Saludos.
Responder Con Cita
  #4  
Antiguo 13-02-2007
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por josemmerida
Me refiero a que en un Triger After no se puede asignar valor a la variable de campo new. En Interbase se podia hacer pero no tenia ningun efecto sobre el valor del campo. En Firebird ya no se puede hacer. Por supuesto en los triger Before si.

Saludos.
Ok, gracias, había entendido otra cosa, ahora está claro
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Compatibilidad de componentes Interbase con Firebird 1.5 victork_py Firebird e Interbase 3 12-09-2006 10:02:19
Compatibilidad firebird 1.5 con IBX Ivanzinho Firebird e Interbase 15 10-08-2005 07:26:18
Compatibilidad entre Interbase y SQLab Ana Tudela Firebird e Interbase 0 09-05-2005 08:50:56
De Interbase a Firebird micky Firebird e Interbase 2 10-11-2004 12:45:15
Compatibilidad de Win2000 Server con FireBird 1.5 El_Perrito Firebird e Interbase 1 10-09-2004 17:02:27


La franja horaria es GMT +2. Ahora son las 12:46:54.


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
Copyright 1996-2007 Club Delphi