Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2008
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
campos memo, autoincremental y time

Hola de nuevo, estoy enredando con el firebird, al final, gracias a vuestras soluciones, he podido hacer que el firebird funcione en delphi con los componentes zeos, solo uso el zeosdatabase, el ztable y luego el datasource.
Estoy usando el ib_sql para crear las tablas y los index, hasta ahi va bien la cosa, pero me he encontrado varios problemas con los tipos de datos, provengo de paradox.

El tipo de dato time no existe, me recomienda el timestamp lo que nose si se puede usar como el time normal.
El campo autoincrement tampoco existe, aunque he visto en otro post del clubdelphi una solucion, pero me lia bastante.
El campo memo no lo he visto por ningun lado.

Si me podeis echar una manita porque no veo documentacion


gracias
Responder Con Cita
  #2  
Antiguo 09-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Claro que existen TIME y DATE además del TIMESTAMP, tal vez es la versión de tu FB, yo uso la 2.0 y si trae ese tipo de campos.

Edito:

Los campos autoincrementales tengo entendido que se hacen con disparadores
Los campos memo son los campos BLOB

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 09-02-2008 a las 03:16:44.
Responder Con Cita
  #3  
Antiguo 09-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola anubis respondiendo a tus inquietudes:

1. Es TIMESTAMP, no deberías tener problemas.
2. No existe ese tipo. Se consigue mediante generador y tigger:

Por ejemplo, este es un generador (sacado de la DB de ejemplo):

Código SQL [-]
CREATE GENERATOR CUST_NO_GEN;

Y este en un Tigger que ejecuta a dicho generador.

Código SQL [-]
CREATE TRIGGER SET_CUST_NO FOR CUSTOMER
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
    /* FIXED by helebor 19.01.2004 */
    if (new.cust_no is null) then
    new.cust_no = gen_id(cust_no_gen, 1);
END

Asi trabaja Firebird, y en lo personal, no es liosa. Aunque hay que tener presente de que los generadores se escapan de las transacciones. Es decir que por más que canceles una transacción, el valor ha sido generado, asi que ten cuidado de cuando y como usarlo. Tal vez es aquí donde te está costando entenderle.

3. Existe el campo BLOB.

Con respecto a documentación:
Sitio Oficial
Firebird México

Y por supusto, Clubdelphi.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 09-02-2008
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias por las respuestas.
Uso la version firebird 2.0 pero quiza sea por culpa del ib_sql, porque al colocar un time me sale con que para date se use timestamp, estoy intentando descargar otra opcion para crear las bases de datos y las tablas.

gracias
Responder Con Cita
  #5  
Antiguo 10-02-2008
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Yo también pase de paradox a FIrebird y te puedo contar algunas de mis experiencias... como tal no te puedo ayudar mucho con los ZEOS en el momento de evaluarlos no me gustaron mucho y proseguí con los IBX...

Consejos.

1. Los campos blobs se podría decir que son los equivalentes a los campos memo, pero creo que es mejor usar un varchar de un tamaño muy grande... ej. vachar(3000)...

2. Si el problema que tienes con los clientes en paradox al tener varios conectados es la saturación del la red en Firebird los tendrás si usas sin nigun tratamiento especial de la información los componentes xxTable (xx = zeos, mdo, ibx), ya que este tipo de componente abre toda la información de la tabla, lo mejor es usar xxDataSets o investigar si se tiene una propiedad filter en el componente xxTable (los IBX y los MDO se que lo tiene y con ellos puede armar un "where id = 1" por ejemplo).

3. Para crear la bd y sus tablas a mi me gusta crearlas en alguna herramienta como ibExpert o DB WorkBench y luego por medio de bkup y restores trasladarlo a los diferentes servidores... en estas herramientas (de uso externo a Delphi) no tendrás problemas como los que describe con los tipos Date o Time, ni creando Procedimientos Almacenados, Triggers, Indices, Llaves foráneas, entre muchas otras opciones

4. Cuando se esta pasando una aplicación que estaba en paradox a Firebird es muy complejo cambiar todos los componentes de tipo TTable a xxDataSet, mientras que cambiarlos a xxTable es un poco mas fácil y rápido por lo cual lo mejor es localizar los procedimientos críticos (en este caso donde mayor cantidad de información se esta trayendo simultáneamente de forma innecesaria), darles u tratamiento especial ya sea por xxDataSets o xxTable con filtros y las demás tablas se irán cambiando de a poco


5. Los locate en componentes de tipo xxDataSet o xxTable dan un poco de problema si no son usados en campos tipo varchar o enteros.

6. Si en algún momento sientes que un Query es my lento usa Indices


7. Poco a poco ve integrando SP (Procedimientos almacenados) a la base de datos, son muy útiles
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
Respuesta



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
Dudas con zeos db y campos autoincremental IVAND Conexión con bases de datos 5 17-04-2007 00:49:01
Interbase/Firebird y campos TIME marcial Conexión con bases de datos 5 16-04-2007 20:03:20
Suma de campos tipo time jzginez Firebird e Interbase 6 02-06-2004 11:54:57
campos time/timestamp Giniromero Firebird e Interbase 15 16-12-2003 14:26:23
Resta/Campos Tipo Time UTECYBER OOP 1 15-12-2003 20:02:02


La franja horaria es GMT +2. Ahora son las 18:10:56.


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