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)
-   -   campo tipo date (https://www.clubdelphi.com/foros/showthread.php?t=2787)

Giniromero 06-08-2003 18:41:28

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

kinobi 06-08-2003 18:51:46

Hola,

tipo TIME

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

Saludos.

Giniromero 07-08-2003 09:36:58

¿y si utilizas interbase 7 pero con dialecto 1?

saludos
Virginia

__cadetill 07-08-2003 11:10:02

Cita:

Posteado originalmente por Giniromero
pero con dialecto 1?
y porque utilizar el dialecto 1??? Que no puedes utilizar el 3??

kinobi 07-08-2003 17:10:02

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.

Giniromero 08-08-2003 10:24:52

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

Voutarks 08-08-2003 13:03:17

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 :)

Voutarks 08-08-2003 13:10:12

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. :D

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.

Giniromero 08-08-2003 18:07:16

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

kinobi 08-08-2003 18:52:45

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.

Giniromero 11-08-2003 09:49:07

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

kinobi 11-08-2003 11:34:19

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.

Giniromero 11-08-2003 13:11:03

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

Giniromero 11-08-2003 13:22:36

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

kinobi 11-08-2003 15:03:14

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.

kinobi 11-08-2003 15:04:49

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.

Giniromero 12-08-2003 10:27:23

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

__cadetill 12-08-2003 10:31:47

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

Carlitos 12-08-2003 12:38:49

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.

Giniromero 13-08-2003 12:11:40

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


La franja horaria es GMT +2. Ahora son las 22:42:36.

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