PDA

Ver la Versión Completa : Filtrar Tabla


jovehe
14-09-2004, 19:35:13
que tal amigos del foro
espero me puedan ayudar con este pequeño problema que tengo .
lo que pasa que yo tengo una tabla paradox en la cual tengo un campo llave que es el id_movimiento pero yo necesito que los datos me los muestre ordenados por el campo fecha_movimiento el tipo de dato de este campo es @ timestamp ya defini un indice en mi tabla por fecha y en las propiedades del componenete table le puse en la propiedad indexfieldname el nombre de este indice pero me manda un mesaje que no se puede acceder al campoi fecha_movimiento en modo integer.

el chiste es que no puedo hacer que la tabla me aparezca ordenada por fecha.
ojala y me pudieran ayudar porque la verdad ya le busque y no puedo (es lo malo de ser nuevo en la programacion).
gracias de antemano y disculpen la molestias.

Odnanref
14-09-2004, 20:33:51
Hola por que no mejor cambias tu campo Id_fecha a Alphanumerico y utilizas en tu codigo la instruccion datatostr(now) espero que te sirva.

jovehe
15-09-2004, 19:47:25
hola que tal gracias por tu pronta respuesta ya probe lo que me dijiste pero el problemilla es que yo copio los datos de otra tabla en donde el tipo de dato del campo fecha es timestamp entonces lo copio como cadena a mi tabla pero el problema es que cuando la ordeno por el campo fecha me respeta solo el orden pero del dia es decir me pone 01/01/04 y despues me pone 01/02/04 y asi sucesivamente hasta que se acaba el 01y se sigue con el 02.

entonces pues ahora no se que hacerle para que me respete el orden pero por fecha.
gracias y espero me puedas o me puedan ayudar.

roman
15-09-2004, 20:17:17
copio los datos de otra tabla en donde el tipo de dato del campo fecha es timestamp entonces lo copio como cadena a mi tabla

Bueno, pero entonces era de esperarse ¿no? Aunque cronológicamente 13/05/04 esté antes de 10/06/04 tu tabla no puede entender que se trata de fechas, para ella son simples cadenas de caracteres, y como tales "13/05/04" va después de "10/06/04".

Aquí la pregunta sería, ¿por qué pasas de TimeStamp a String en lugar de a un campo Date? Y si esto es algo que no puedes modificar entonces quizá puedas almacenar las fechas pero en formato "yy/mm/dd" de manera que la fecha 13/05/04 pase a ser la cadena "04/05/13" y 10/06/04 pase a ser "04/06/10" obteniendo el orden correcto.

// Saludos

jovehe
15-09-2004, 21:13:23
hola que tal
Si de Hecho tienes razon era obvio que ordenara la tabla asi porque como dices solo reconoce una cadena .

de hecho ya hice lo que me dices copiar de un timestamp a un campo date pero al momento de generar un filtro desde la propiedad idexfieldname o indexname me manda un error que dice
No se puede acceder el campo Fecha_Movimiento como tipo integer y entonces no se que pasa ese es mi problema
gracias por tu ayuda y ojala me puedas ayudar.
Saludos

roman
15-09-2004, 21:25:09
Pero este error no viene por poner el índice. En algún lugar estás haciendo algo parecido a

Table1.FieldByName('fecha_movimiento').AsInteger

es decir, tal como dice el mensaje, estás intentando usar el campo como si fuese un valor entero, cosa que no es posible.

// Saludos

jovehe
15-09-2004, 22:06:32
ya me di cuenta mas omenos que pasa y es que la llave de esa tabla es de tipo entero entonces yo tengo una validacion de este tipo

While not tabla1.Eof do
Begin
movto:=tabla1Id_Movto.AsInteger;
if tabla2.FindKey([movto]) then
begin
tabla1.Next;
end
else
begin
tabla2.Append;
Tabla2Id_Movto.AsInteger:=DM3.Query3.FieldByName('Id_Movto').AsInteger;
y aqui sigo copiando los demas campos

entonces si le quito la condicion de que busque la llave ya me ordena la tabla
que podre hacer para que esa condicion siga haciendola pero que me oredene tambien la tabla
gracias por tu ayuda y tu rapida respuesta.