Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-07-2007
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
Ordenar tabla de paradox sin indice o_O??

Bueno, sucede que necesito imprimir un reporte que tenga información de dos tablas distintas, es un estado de cuenta que jala registros tanto de abonos, como de salidas monetarias.
Lo que hice fue crear una tabla temporal en la que se insertan los datos de ambas tablas antes de mandar el preview al QuickReport donde será impreso el reporte.

Hasta este punto está todo bien, ya que el QuickReport si me muestra la información que requiero, el problema es que no está ordenada, y necesito ordenarla por fecha. Ni siquiera intenté hacer el campo 'fecha' como indice principal porque es obvio que me mandará un key violation, entonces lo utilicé como indice secundario, pero me manda el error 'index out of date'.

No se me ocurre como solucionar esto x_x.

Actualmente lo que me muestra es primero los registros de la tabla Abonos y después los de la tabla Salidas.

Si no me expliqué digánmelo, pero necesito que me ayuden U.U

Byes!
Responder Con Cita
  #2  
Antiguo 17-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El error viene- me parece -porque paradox se confunde si pones un índice secundario si poner uno primario. Puedes usar un campo auto incremental para que haga de llave primaria. Pero a mi me da porque te ahorrarías problemas si usaras un consulta SQL en lugar de una tabla temporal. Aunque no conozco la estructura de tus tablas, por lo que mencionas, podría ser algo como:

Código SQL [-]
select fecha, otros campos from abonos

union all

select fecha, otros campos from salidas

order by fecha

Habría que pobar, pero creo que e este caso el order by se aplica sobre toda la unión, de manera que obtendrías los datos ordenados como quieres.

// Saludos
Responder Con Cita
  #3  
Antiguo 17-07-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tiene razón Román, al no tener un índice primario el índice secundario no puede ser mantenido por lo tanto no se actualiza.

Sino quieres cambiar nada lo que dice Román funcionara, o bien pones un Auotinc como Clave única o intentas la consulta de Union que yo he utilizado algunas veces y funciona perfectamente.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 18-07-2007
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
Gracias por las respuestas, hice lo de poner el campo autoincremental como llave primaria pero ne me sirvió :S, me sigue mandando el index out of date.

Ahora mi problema es que nunca he utilizado SQL en Delphi y no tengo idea de como, es decir, he utilizado consultas SQL en visual foxpro, y la verdad ya no recuerdo bien... bueno en sí lo que necesitaría es que me explicaran como hago para que el Delphi me ejecute el código SQL, y como hacer para mostrar el resultado en el reporte, ya que actualmente el reporte lo relaciono con la tabla temporal y no se como se relacionaría con el resultado de la query.

Espero haberme explicado, y espero sus respuestas.
Byes!
Responder Con Cita
  #5  
Antiguo 18-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Usa una componente TQuery. En su propiedad SQL pones la consulta que te indiqué, y al igual que con el Table, activas la consulta con Query.Active := true o Query.Open. El QuickReport lo enlazas directamente al Query con su propiedad DataSet.

// Saludos
Responder Con Cita
  #6  
Antiguo 19-07-2007
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
Bueno, la verdad no supe como utilizar el query xD, soy bastante novato en esto. Pero ya conseguí lo que buscaba por medio de unas cuantas condiciones y unos ciclos while.

Ahora tengo otra duda... ahora que mi tabla tiene un autoincremental como llave primaria, ¿cuando llegue al límite de valores que puede tener (un long int según leí), me va a mandar el error key violation al querer insertar registros en la tabla?
Como es una tabla temporal la solución sería simple, ya que con pegarle encima una copia en blanco de la tabla o abriendola con el Database Desktop podría reiniciar el counter... el problema es que yo pienso dejarle el sistema al cliente y no creo volverlo a ver xD, así que me gustaría dejarle el sistema funcionando de tal manera que no requieran de mi ayuda en el futuro (al menos en ese aspecto), entonces quería saber si existe algún código para poder reiniciar el counter de la tabla al abrir el sistema o algo parecido, es decir, que el cliente no se de cuenta de que se está haciendo este trabajo, y que todo funciona bien magicamente xD.

Espero sus respuestas, byes!
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
como puedo generar un indice en paradox mrmago Conexión con bases de datos 4 13-01-2006 23:19:54
Indice en tablas Paradox Coco_jac Varios 1 01-12-2005 15:48:18
urge como regenerar un indice corrupto de paradox Marco A. Roa Conexión con bases de datos 2 20-05-2005 11:18:10
Indice de tabla paradox dañado William Garcia Tablas planas 4 03-03-2004 23:43:38
Archivos de indice en Paradox Ignacio Varios 3 08-01-2004 15:31:59


La franja horaria es GMT +2. Ahora son las 11:29:10.


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