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 06-08-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
campo tipo date

Hola a todos,

Tengo una tabla interbase 7, que está siendo utilizada desde una aplicación hecha en delphi 6.

el problema es que tengo un campo, que tiene que contener SÓLO HORAS, y como está vinculado a un campo de IB de tipo DATE, por lo que me guarda también los días (fecha), lo cual me da problemas en la aplicación

Hay algún tipo de campo, que guarde sólo horas, o alguna forma de decirle a mi base de datos que sólo gestiones horas?
¿alguna definición de dominio para este tipo de datos?

GRacias

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #2  
Antiguo 06-08-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

tipo TIME

disponible a partir de InterBase 6.0 (utilizando dialecto 3).

Saludos.
Responder Con Cita
  #3  
Antiguo 07-08-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
¿y si utilizas interbase 7 pero con dialecto 1?

saludos
Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #4  
Antiguo 07-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Cita:
Posteado originalmente por Giniromero
pero con dialecto 1?
y porque utilizar el dialecto 1??? Que no puedes utilizar el 3??
Responder Con Cita
  #5  
Antiguo 07-08-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

además de lo que comenta Cadetill ...

Cita:
Posteado originalmente por Giniromero
¿y si utilizas interbase 7 pero con dialecto 1?
si utilizas IB 7 con dialecto 1 estarás utilizando tu servidor InterBase, desde el punto de vista del SQL que admite, con un comportamiento pre-versión 6.0. Es decir, el dialecto 1 se utiliza para compatibilidad hacia atrás (versiones anteriores a la 6.0) y, por tanto, no podrás acceder a los tipos nuevos de fecha-hora: DATE, TIME, TIMESTAMP, que se añadieron a partir de la versión 6.0

Resumen de tipos fecha-hora:

1. Pre-versión 6.0 (o si utilizas dialecto 1):
DATE ... Almacena fecha y hora.

2. Versión 6.0 y siguientes (utilizando dialecto 3):
DATE ... Almacena sólo fecha.
TIME ... Almacena sólo hora.
TIMESTAMP ... Almacena fecha y hora.

Conclusión: o cambias de dialecto, al 3, o tendrás que utilizar necesariamente el tipo DATE del dialecto 1, que incluye fecha y hora.

Saludos.
Responder Con Cita
  #6  
Antiguo 08-08-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Pillo la idea, pero me surgen nuevas dudas...

¿que diferencia hay entre el dialecto 1 y el 3 además de esta que me comentas?

¿como hago para pasar mis tabla paradox 5 a interbase7 con dialecto 3?

Por que he conseguido pasarlas a interbase7, pero sólo me lo permite, si lo hago con dialecto 1.

Gracias

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #7  
Antiguo 08-08-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Poder: 21
Voutarks Va por buen camino
Para pasar una base de datos de un dialecto a otro se usa la intrucción GFIX de esta manera:
  • Abre una ventana de consola y ve al directorio bin de la raiz donde esté instalado Interbase. Esto en windows suele ser unidad:\Archivos de programa\Borland\Interbase
  • Teclea gfix -user SYSDBA -password masterkey -sql_dialect 3 unidad:\camino\database.gdb

Un par de apreciaciones:

Esto funciona, aunque no se puede garantizar que se pasará bien en el 100% de las ocasiones. Es posible que no se pueda. Si no tras ejecutar la instrucción se vuelve a la línea de comandos sin ningún mensaje entonces la cosa ha ido bien.

En segundo lugar, los campos que antes eran de tipo DATE, tras la conversión serán de tipo TIMESTAMP. Esto es así debido a los nuevos tipos. Como ya se ha comentado aqui, antes sólo existía el tipo DATE, que almacenaba fecha y hora, y tenía una longitud de 64 bits. Ahora los tipos de datos son DATE, que almacena fechas y TIME que almacena horas, y ambos tiene una longitud de 32 bits. Además tambien se añade el tipo TIMESTAMP únicamente para compatibilidad con el viejo tipo DATE, ya que al igual que éste, TIMESTAMP alamacena fechas y horas con una longitud de 64 bits.

Como lo que te hace falta son solo las horas, puedes intentar a modificar el campo de TIMESTAMP a TIME con una instrucción SQL DDL tal como esta:

ALTER TABLE TABLA ALTER CAMPO1 TYPE DATE

aunque... no garantizo la conversión

Espero haberte ayudado
Responder Con Cita
  #8  
Antiguo 08-08-2003
Avatar de Voutarks
Voutarks Voutarks is offline
Miembro
 
Registrado: jul 2003
Ubicación: Islas Canarias
Posts: 118
Poder: 21
Voutarks Va por buen camino
Ups! supongo que os habeis dado cuenta, me he equivocado en el anterior post en la intrucción para cambiar el tipo de dato. La que puse era para pasar al nuevo tipo date.

Para pasar a TIME sería

ALTER TABLE TABLA ALTER CAMPO1 TYPE TIME

Por cierto, he hecho una prueba y parece que la conversión se realiza perfectamente.
Responder Con Cita
  #9  
Antiguo 08-08-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
gracias,

efectivamente, funciona ok.

Lo que no me queda claro es, por que no me deja pasar directamente a dialecto 3, cuando paso las tablas paradox a interbase, ni cuales son las diferencias principales de estos.

Muchas gracias por la ayuda,

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #10  
Antiguo 08-08-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por Giniromero
Lo que no me queda claro es, por que no me deja pasar directamente a dialecto 3, cuando paso las tablas paradox a interbase,
pero ... ¿quién, o qué, no te deja pasar a dialecto 3?, ¿por qué?, ¿algún mensaje de error?

Cita:
Posteado originalmente por Giniromero
ni cuales son las diferencias principales de estos.
¿diferencias entre dialecto 1 y 3?. Si es así:

http://community.borland.com/article...,23218,00.html
ftp://ftpc.inprise.com/pub/interbase...ationGuide.zip

Saludos.
Responder Con Cita
  #11  
Antiguo 11-08-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Cita:
pero ... ¿quién, o qué, no te deja pasar a dialecto 3?, ¿por qué?, ¿algún mensaje de error?
estuve intentando hacerlo usando el IBPump, y no me permitía poner dialecto 3. Me daba error.(Seguramente, por que no lo sabía usar, pero no encontré una buena documentación del programa, y no me resolvía el problema).

Finalmente, las tablas las estoy pasando directamente desde paradox, con la opción copy que el paradox tiene. De esta manera tengo que revisar los indices y los tipos de mis campos, después de pasar de paradox a interbase, pero es de la única forma con la que he conseguido hacerlo.

Si sabes de alguna forma mejor....

en cualqueir caso, gracias por la ayuda.

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #12  
Antiguo 11-08-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por Giniromero
estuve intentando hacerlo usando el IBPump, y no me permitía poner dialecto 3. Me daba error.
En esto no puedo ayudarte, prácticamente no he utilizado IBPump.

Cita:
Posteado originalmente por Giniromero
Finalmente, las tablas las estoy pasando directamente desde paradox, con la opción copy que el paradox tiene.
Eso significa que estas utilizando BDE. El BDE sólo permite utilizar dialecto 1 con InterBase, aunque creo recordar que existe una versión, del BDE que puedes descargar gratuitamente de Borland, que permite trabajar también con dialecto 3.

Acabo de mirarlo y es la versión 5.2. Si estás trabajando con una versión anterior del BDE, puedes descargarte ésta en ...

http://info.borland.com/devsupport/bde/bdeupdate.html

Saludos.
Responder Con Cita
  #13  
Antiguo 11-08-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Hola,

si lo estoy haciendo con DBE.

Hay alguna otra forma de pasar las tablas de paradox 5 a interbase 7 usando dialecto 3 y que sea más o menos sencilla de usar o tenga una buena documentación?

gracias

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #14  
Antiguo 11-08-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Por cierto, ¿que se supone que debo hacer con el archivo que me indicaste me bajase de la página web de borland?

¿A que se supone sustituye?

gracias

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #15  
Antiguo 11-08-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por Giniromero
Hay alguna otra forma de pasar las tablas de paradox 5 a interbase 7 usando dialecto 3 y que sea más o menos sencilla de usar o tenga una buena documentación?
pues no sabría decirte. Personalmente nunca utilizo programas de traspaso (para los metadatos), prefiero montar "a mano" los scripts SQL de creación de la base de datos y después hacer un pequeño programa de traspaso de datos.

Saludos.
Responder Con Cita
  #16  
Antiguo 11-08-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por Giniromero
Por cierto, ¿que se supone que debo hacer con el archivo que me indicaste me bajase de la página web de borland?
Instalarlo. Es un instalador.

Cita:
Posteado originalmente por Giniromero
¿A que se supone sustituye?
Al BDE completo. Lo deja actualizado a la versión 5.2, que sí permite el uso de dialectos con InterBase.

Saludos.
Responder Con Cita
  #17  
Antiguo 12-08-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Hola,

lo preguntaba por que me da error al instalarlo, de hecho, dice que tengo que tener una "enterprise version of delphi" y yo la que tengo es la profesional.


Saludos

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
Responder Con Cita
  #18  
Antiguo 12-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Si te fijas en la web que te dice kinobi, veras que tienes para descargar tanto la version Enterprise del BDE como la Professional. Quizas te equivocaste de enlace al descargarlo
Responder Con Cita
  #19  
Antiguo 12-08-2003
Carlitos Carlitos is offline
Miembro
 
Registrado: ago 2003
Posts: 22
Poder: 0
Carlitos Va por buen camino
Si utilizas el tipo TIME tendrás la restricción de que no podrás almacenar más de 24 horas y tendrías que usar un campo de tipo integer y almacenar segundos, minutos u horas según te convenga y a la hora de visualizarlo convertirlos. Ésto si te permitirá tener por ejemplo 4 dias y 23 horas o 119 dias según te convenga visualizar.
Responder Con Cita
  #20  
Antiguo 13-08-2003
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 21
Giniromero Va por buen camino
Hola,

Me he bajado la versión profesional, la cual se ha instaldo bien... pero sigo sin poder pasar directamente de paradox a interbase con dialecto 3.

Usando el datapump no tengo que tener la tabla definida en interbase, por que si las tengo definidas no me pasa los datos.

Si no tengo las tablas definidas me pasa la mayoría de las tablas menos dos, que no son muy grandes ni tienen nada de particular.

Las tablas que si me ha pasado a interbase con dialecto 3, tengo que revisarla 1 por una para controlar que su promary key esta bien definida, por que me la pone como un indice más, no como una primary key.

¿Hay alguna forma, algo más sencilla, para pasar de paradox a interbase?



Gracias,

virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)
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


La franja horaria es GMT +2. Ahora son las 12:10:31.


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