Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-11-2008
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
ordenar base de datos

hola

tengo una base de datos hecha en delhi 4
modelo
paciente fecha hora
a 12/12/2008 11:00
d 21/12/2008 11:35
c 22/12/2008 12:20

nesecito que me la ordene por fecha y por hora , me podrian ayudar
el de arriba seria como me tendria que quedar..


muchas gracias
  #2  
Antiguo 25-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código SQL [-]
Select * from TUTabla order bye TuTabla.Fecha, TuTabla.Hora ADS
No se me parece que tambien quieres ordenar al paciente.
Código SQL [-]
Select * from TUTabla order bye TuTabla.paciente, TuTabla.Fecha, TuTabla.Hora ADS
Saludos
__________________
Siempre Novato
  #3  
Antiguo 25-11-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola andres***,
Como te he dicho por mensaje privado: esto se puede hacer con una consulta SQL que tenga la clásula ORDER BY:

Código SQL [-]
SELECT nombre_campo1, nombre_campo2, nombre_campoN
FROM nombre_tabla
ORDERY BY nombre_campo_fecha, nombre_campo_hora

Por ejemplo, en tu caso sería algo:

Código SQL [-]
SELECT paciente, fecha, hora
FROM tabla_atencion_pacientes
ORDER BY fecha, hora

Sería mucho más sencillo si tienes un campo que sea fecha/hora, de este modo no tendrías que estar guardando los datos en forma seperada. Con un simple ORDER BY, el motor se encargaría de ordenarlos ascendentemente tanto por fecha y hora.

Si tienes problemas con la consulta SQL y/o no entiendes hazlo saber en este hilo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
  #4  
Antiguo 25-11-2008
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
tabla

como seria la tablita en sql?
no entiendo mucho
gracias
  #5  
Antiguo 25-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Hay que tener en cuenta varias cosas.
1-La tabla
Esta pertenece a la base de datos, es la que contiene los datos
2-La consulta.
Lo que se hace con sql, osea se pide informacion (consultas), se añaden items, etc, a las tablas.
Lo que se te dio fue la manera de CONSULTAR por medio de SQL a una tabla, NO organizar la Tabla.
Saludos
__________________
Siempre Novato
  #6  
Antiguo 25-11-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por andres*** Ver Mensaje
como seria la tablita en sql?
no entiendo mucho
gracias
¿Tablita en sql? ¿A qué te refieres?
Dices que tienes una base de datos, por tanto intuyo que tienes una tabla.
Partamos de algo fundamental: ¿Podrías decirnos que tanto sabes sobre bases de datos?

¿Que motor usas? ¿Que componentes empleas para acceder a la base de datos?

Cuando más nos puedas decir al respecto más te podremos ayudar.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
  #7  
Antiguo 25-11-2008
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
entiendo algo de bases de datos

lo que hice fue armar un formulario
poberle un componente table mas un data source
base de datos elegi dbase IV
y tengo la table mostrada en un db grid
y necesito que en el db grid me salga ordenada por fecha y dentro de ese orden tambien por hora..

disculpen si no me expreso bien..
gracias por ayudarme
  #8  
Antiguo 25-11-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
OK. Ahora entiendo. Bueno... si puedes emplear algo más "moderno" sería mejor, dBase como que está un tanto obsoleto.

Como tienes un TTable en vez del TQuery, puedes hacer uso de la propiedad IndexName, IndexFieldNames. Con estas propiedades puedes alterar el índice para la base de datos y obtener los datos ordenados. Siempre y cuando tengas un índice para el campo fecha y hora podrás realizar lo que deseas.

El mayor problema que tienes es que guardas la fecha y la hora por separado. Va a ser necesario tenerlos en uno sólo (es decir campo fecha/hora) para conseguir ordenarlos por fecha y hora.

Si en vez de emplear el TTable usaras un TQuery es posible lanzar las consultas SQL como indicamos anteriormente.

Sugiero que leas la ayuda sobre las propiedades que te mencioné, sobre los componentes. Además no está demás una leida a material tanto teórico como práctico sobre Delphi y bases de datos. En el FTP y el wiki del club hay material.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
  #9  
Antiguo 26-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
andres, vamos a pillar al toro por los cuernos .

En la paleta BDE de delphi, haz clic sobre el componente TQuery y ponlo en tu ventana.

En la propiedad DatabaseName, elige donde tienes tu base de datos. Si has creado un "alias" en el Database Desktop, entonces usa la propiedad AliasName y elígelo de la lista (si esto te suena a chino, entonces usa la propiedad DatabaseName).

Ahora busca la propiedad SQL y haz clic en los 3 puntitos, escribe esto en esa ventana:
Código SQL [-]
SELECT paciente, fecha, hora
FROM tabla_atencion_pacientes
ORDER BY fecha, hora, paciente
Nota: tabla_atencion_pacientes tienes que sustituirlo por el nombre real de tu tabla, lo puedes deducir del TTable que tienes, en su propiedad Tablename vendrá algo así: "Pacientes.DB" (la extensión .DB no hace falta que la pongas), por tanto tu tabla se llama pacientes.

Pon en esa ventana un TDatasource desde la pestaña "Data Access" se llamará Datasource1, en su propiedad Dataset, elige Query1.
En la propiedad Datasource del dbgrid elige el Datasource1 (con esto estamos ligando la consulta al grid para ver los resultados).

En el FormCreate de esa ventana, escribe:
Código Delphi [-]
query1.Open

Listo !!

Cuando ejecutes tu programa, ya tendrás ordenado por fecha, después por hora y después por Nombre alfabético de los pacientes.

¿Lo ves ahora más fácil? No era para tanto ¿verdad? Bien, pues ahora te toca a tí buscar un buen manual de SQL (que los hay a patadas en internet) y mirar cómo puedes ordenar descendentemente los datos, agrupar información para sacar totales, etc.

Saludos

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 26-11-2008 a las 09:32:07.
  #10  
Antiguo 26-11-2008
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
muchisimas gracias a todos los que me bancaron he solucionado el problema del orden por fecha y por hora
  #11  
Antiguo 28-11-2008
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
hola
tengo un problema, cuando imprimo un report en vez de salirme la primer hoja impresa, me sale la primera en blanco y la segunda con la impresion

yo pongo

form x .quickrep1.peview

y cuando me tira la vista preliminar del fornmulario , mando a imprimir

hay alguna otra forma de imprimir un formulario?

gracias
  #12  
Antiguo 29-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Puedes obviar la presentación preliminar y enviar a imprimir, pero el resultado va a ser el mismo.

mira con detalle (si lo has tocado o no usas un A4) el tamaño de página, los márgenes y posiblemente una banda de detalle muy grande.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
  #13  
Antiguo 16-12-2008
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
buenaas

nesecito saber como puedo depurar desde una fecha hasta otra los datos de una tabla
  #14  
Antiguo 16-12-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por andres*** Ver Mensaje
buenaas

nesecito saber como puedo depurar desde una fecha hasta otra los datos de una tabla
¿Depurar?
¿Podrías ser más descriptivo?

¿Que componentes estás empleado? ¿Sigues con los Tables o estás haciendo uso de Querys.?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
  #15  
Antiguo 16-12-2008
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
perdon.

necesito poner dos fechas y que todos los datos que esten entre esas fechas se borren de la tabla .

yo tengo una tabla a la que le cargo turnos
y para que no jodan los turnos de los dias pasados a la fecha queria saber como puedo hacer para borrarlos

me explico.

saludos
  #16  
Antiguo 16-12-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Y eso no se hace con un asentencia sql con Betwin (o lo que es lo mismo entre en spanglish) o poniendo los rangos >= y <= .
No se digo yo.
Saludos
__________________
Siempre Novato
  #17  
Antiguo 16-12-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Como bien lo ha dicho Carlos,
Si se hace mediante SQL, y por tanto de Querys, hay dos opciones:
1. Poner en la parte where una condición del tipo (fecha >= fechaIni) and (Fecha <= fechaFin)
2. Poner en la parte where la instrucción bettwen.

Es un tema ya muy ampliamente tratado y si buscas en los foros hallarás muchos hilos en donde hay ejemplos. Prueba con palabras claves como rango fecha, bettwen.

Si se emplea un Table no queda otra opción que emplear Filtro y poner una condición como la señalada en el punto 1. Nuevamente debo mencionar, sin ofender, que el tema de filtros también fue tratado.

Por algo he dicho que mencionaras que componentes usas. Dependiendo de cual uses se realiza el trabajo.

Saludos,

Saludos
__________________
Delphius
[Guia de estilo][Buscar]
  #18  
Antiguo 16-12-2008
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
yo lo que quiero es eliminar los datos que cargue en la base de datos, entre una fecha y otra ,no se si me explico.
  #19  
Antiguo 16-12-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por andres*** Ver Mensaje
yo lo que quiero es eliminar los datos que cargue en la base de datos, entre una fecha y otra ,no se si me explico.
Ahora si, no es lo mismo mostrar datos que eliminarlos.

No es por ser pedante, pero si supieramos, si nos contases de que modo estás trabajando sería más fácil para ti entender nuestros ejemplos. Por algo te estoy pidiendo que nos comentes sonre que componentes empleas.
Para mi es mucho más fácil, directo, económico, y fiable lanzar una instrucción SQL como esta:

Código SQL [-]
DELETE FROM LA_TABLA
WHERE Fecha between FechaIni and FechaFinal

O algo similar.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
  #20  
Antiguo 07-01-2009
andres*** andres*** is offline
Miembro
 
Registrado: nov 2008
Posts: 31
Poder: 0
andres*** Va por buen camino
buenas tardes....

tengo un problema en el programa que arme con la ayuda de ustedes,
no puedo hacer que me filtre x medico y a la vez por dia.
la sentencia que puse es la siguiente:

procedure TIngresoturnos.SpeedButton3Click(Sender: TObject);
begin

query1.active:=true;
query1.filter:= ComboBox1.TEXT + ' ='+ quotedstr(DBLookupComboBox1.TEXT + '*');
query1.filtered:=true;
dbgrid1.visible:=false;
dbgrid2.visible:=true;
QUERY1.filter:= 'FECHA=' + quotedstr(FORMATDATeTIME('dd/mm/yyyy',datetimepicker2.date));
end;
tendra alguna solucion gracias
Tema Cerrado



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
Ordenar datos en un StringGrid gilberto_1126 Varios 2 22-12-2010 18:34:29
Ordenar datos en IBDataSet niñotaliban Varios 3 07-04-2007 14:03:06
Ordenar datos en un DBGrid jona-182 Conexión con bases de datos 3 30-03-2007 21:43:06
Ordenar tabla (base de datos) talos C++ Builder 3 10-02-2006 00:26:21
Ordenar conjunto de datos Osorio Firebird e Interbase 1 15-10-2003 07:56:42


La franja horaria es GMT +2. Ahora son las 06:13:09.


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