FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Trabajar con campos Time
Hola a todos amigos foreros, estoy utilizando el SQL Server 2008 y delphi 2010 conectando con los componentes ado.
El problema es que me genera un error a la hora de querer mostrar los datos de este tipo en particular. el mensaje que me muestra es: "Error: la operacion en varios pasos genero errores.". aunque ya ví el hilo que trata sobre el asunto del error no tiene nada que ver con mi problema. Alguna forma de trabajar con los campos de tipo TIME Gracias por vuestra ayuda y colaboración |
#2
|
||||
|
||||
Cita:
Ojalá te sirva un poco el consejo...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#3
|
||||
|
||||
Hola tiammat gracias por tu pronta respuesta, y cómo sería ese proceso de convertir los datos de enteros a "time".
Gracia de antemano... |
#4
|
||||
|
||||
Tal vez tendrías que ser un poco más concreto con lo que estás haciendo. Tal vez algo de código que estás usando ayudaría. De esa forma podríamos ver si hay algo raro.
Yo también he trabajado con ADO/SQLServer y no he tenido problemas. Cuando hablas de "a la hora de querer mostrar los datos de este tipo", te refieres a un DBGrid, a un DBEdit,... ¿?¿??¿?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Pues así, invertir el proceso de conversión. Si multiplicaste, divides y así..., obviamente hacerlo en una función que puedas llamar para tus reportes, rejillas, campos editables, etc...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#6
|
||||
|
||||
Estas *seguro* que el problema es el tipo de datos? No veo porque razon deberia. Aunque hay veces que ciertos tipos de datos pueden causar pequeños problemas, son casi siempre debido a que no se entiende su uso correcto.
Seria bueno que aislaras la causa concreta del error, por ejm, creando una copia de la tabla que tiene el lio, concentandote a ella, cambiando el tipo de datos, etc... hasta dar exactamente con la causa del error. Tambien quizas probar con otro driver (a sql server hay como 3 formas de conectarse http://www.connectionstrings.com/sql...der-for-ole-db)
__________________
El malabarista. |
#7
|
||||
|
||||
Hola mamcx, estoy plenamente seguro que es el campo.
Utilizo los componentes ado para la conección, SQL Server me permite el tipo de dato Time(7) pero delphi o los componentes o no sé qué cosa es la que me está generando el problema intenté el tipo de dato DateTime y por un momento creí que había solucionado el problema pero al momento de visulizar un reporte me manda un error por ejemplo "01/01/190006:44op,m" is not a valid floating point value. para la conección utilizo la siguiente cadena:
quizás se pueda hacer algo. Gracias de antemano por toda vuestra ayuda Última edición por Casimiro Notevi fecha: 11-01-2013 a las 21:57:55. |
#8
|
||||
|
||||
Si es al momento de visualizar el reporte, el problema no esta en ADO sino en el reporte (supongo). Por la cadena que muestra, el valor es un datetime correcto pero el reporte espera que sea un float.
__________________
El malabarista. |
#9
|
||||
|
||||
Exacto, pero y entonces el campo de tipo Time(7). Qué? se puede o no se puede trabajar con eso y si nó, cómo puedo solucionar el problema del respote. Tengo el FastReport.
Gracias a todos |
#10
|
||||
|
||||
En la prehistoria usé SQL Server así que lo que trae la versión 2008 ni idea. Pero por lo que leo desde el sitio de MSDN el problema está en el tipo de dato y su precisión.
Resulta ser que los geniesitos de Microsoft ahora han declaro al tipo TIME con la posibilidad de indicar su precisión por debajo del segundo, cuyo valor va de 0 a 7; siendo 7 el valor por defecto. [OFF-TOPIC]Que yo sepa, esto está fuera de estándar SQL. ¿Que no era que había cierta reglamentación de lo que es un TIME? [/OFF-TOPIC] Esto hace que dependiendo de la precisión establecida el tipo TIME se enmascare en un formato de coma flotante para el caso. Esto hace que luego al intentar leer el dato no se pueda interpretarlo... a este nivel el problema ya puede ser de/los componentes de acceso que no tienen soporte (actualizado) para SQL Server 2008 y por tanto no saben como trabajar con este tipo de dato. Justamente en dicho enlace se da la información necesaria de como ofrecer compatibilidad hacia atrás dependiendo del método de conexión. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
campos memo, autoincremental y time | anubis | Firebird e Interbase | 4 | 10-02-2008 16:23:22 |
Interbase/Firebird y campos TIME | marcial | Conexión con bases de datos | 5 | 16-04-2007 20:03:20 |
time, comparar 2 campos ttime | Pascual Montes | Varios | 2 | 29-03-2005 19:50:47 |
Campos DateTime recibiendo Time | amesoft | Conexión con bases de datos | 1 | 25-02-2005 22:22:23 |
campos time/timestamp | Giniromero | Firebird e Interbase | 15 | 16-12-2003 14:26:23 |
|