PDA

Ver la Versión Completa : recorrer una tabla de una bd en access


sarias24
26-10-2010, 19:26:55
hola espero que me puedan ayudar, necesito ordenar los registros de una tabla en access y no se como hacerlo, pues no hallo la forma de recorrer la tabla, me podrian ayudar con esto para lograr ordenar los datos de dos de las columnas, saludos y gracias de antemano

Caral
26-10-2010, 19:35:52
Hola
Directamente en access o para presentarlo en delphi ?.
Saludos

sarias24
26-10-2010, 20:43:24
primeramente ordenar los datos y luego mostrarlos en un dbgrid en delphi. y esos datos pasarlos para una lista, son de tipo de dato real,
tambien quisiera saber si ya de paso tienes conocimiento o sabes adonde puedo dirigirme, como puedo calcular la distancia de un punto a una recta, con esta formula:
d= X1cos_a+y1sen_a-p

gracias.....

Caral
26-10-2010, 20:48:46
Hola
La primera parte tienes que hacer una sentencia sql para traer los datos ordenados, algo asi:
Select * from TuTabla Order by tuCampo o campos
Con relacion a la formula da la impresion de que son variables y que por sus nombres deben ser datos del X, Y, coseno y secante, pero no lo se.:):p
Saludos

sarias24
26-10-2010, 21:52:29
gracias por la sentencia sql, pero y para mostrarlos en delphi que hago??, llamo a la consulta o hay que hacer algo mas???

Caral
26-10-2010, 21:56:05
Hola
Esto se hace con los componentes, para access mejor ADO.
Si quieres coloca la BD y lo que tengas hecho del programa en rapidshare (http://www.rapidshare.com/) y lo bajo para ver como te lo arreglo y explico.
Saludos

sarias24
26-10-2010, 22:15:31
ya puse la consulta en un query, solamente me faltaria llamarlo, pero aun tengo la duda de como puedo recorrer la tabla registro a registro como si fuera una lista

Caral
26-10-2010, 22:18:47
Hola
Aqui tienes un ejemplo con access.
Saludos

sarias24
26-10-2010, 22:42:34
ya esta en rapidshare, lo que no me deja poner el link, si tienes email te lo envio
espero de veras que me ayudes pues lo necesito, ahi hay otras cosas que forman parte del sistema pues debo implementar el algoritmo delaunay para triangular una nube de puntos y estoy un poco enredada, si tienes algun fuente en delphi o conocimiento de esto espero me ayudes, gracias

sarias24
26-10-2010, 22:44:37
gracias, esta de lo mas bueno, espero tu respuesta,

Caral
26-10-2010, 22:44:49
Hola
El link ponlo quitando la primera h, asi: ttp://www.clubdelphi.com/foros/
Saludos

sarias24
26-10-2010, 23:12:46
ttp://rapidshare.com/files/427319572/Triangulaci_n.rar

ahi te va

sarias24
26-10-2010, 23:13:44
ttp://rapidshare.com/files/427319572/Triangulaci_n.rar

ahi te va, nos escribimos mañana pues me tengo que ir

Caral
26-10-2010, 23:21:40
Hola
Si coloco la h delante dice que no esta:
http://rapidshare.com/files/427319572/Triangulaci_n.rar
revisa la direccion.
Saludos

sarias24
27-10-2010, 14:13:38
ttp://rapidshare.com/files/427319572/Triangulaci__n.rar ahi te va el link de nuevo, lo probe y sale automaticamente a descargar, saludos

Caral
27-10-2010, 18:30:22
Hola
Ya baje el programa y no entiendo nada.
As creado un monton de unidades PAS para hacer no se que.
As creado un monton de procedimientos y funciones que tampoco se para que son.
La conexion con la bd no esta bien.
No entiendo que es lo que quieres hacer, si te explicas un poco tal vez pueda ayudar, por lo menos con la conexion a la bd.
Saludos

sarias24
27-10-2010, 20:55:22
bueno ayudame con lo de la base de datos y como recrrer los registros de la tabla, por lo demas son cosas para posteriormente realizar la triangulacion, aunque solamente estoy usando la unit2

Caral
27-10-2010, 21:01:36
Hola
No entiendo el concepto de recorrer la bd o la tabla.
Cuando haces un select * tutabla, ya estas recorriendo la tabla.
Si lo que quieres es hacer un calculo o contar registros entonces necesitas especificar que quieres hacer, esto se hace con un where.
Por eso te dije, no entiendo muy bien que quieres hacer, sigo sin entenderlo, disculpa.
Tu programa, segun lo que entiendo guarda unas formulas numericas, estas son capturadas y usadas para hacer alguna operacion.
Saludos

sarias24
27-10-2010, 21:16:27
mira como se muestran en algunas formulas utilizo dos x y dos y para calcualr, por ejemplo:
tabla
X Y
5 6
3 4
3 8

como puedo coger los valores 5;6 y 3;4 siendo el registro uno y el registro dos respectivamente para utilizar por ejemplo, la funcion distancia, me hago entender ahora????
gracias

Caral
27-10-2010, 21:22:23
Hola
Se tiene que hacer por variables que contengan esos datos.
No puedes hacer un recorrido de la tabla buscando datos ya que el programa no va a saber donde quieres parar para hacer el calculo, el cojera todos los datos.
Lo que yo creo que se tendria que hacer es colocar un boton y especificar los dos primeros y luego, seleccionar los otros dos para hacer el calculo.
No veo la manera de hacerlo recorriendo TODOS los datos de la tabla.
Saludos
PD: Estoy tratando de entender lo mejor que puedo esto para ver si te hago un ejemplo.

sarias24
27-10-2010, 21:56:39
ok, muchas gracias, si encuentras algo referente al algoritmo lo pones aqui, saludos y muchas gracias, me has servido de ayuda.

Caral
27-10-2010, 22:08:44
Hola
Estoy haciendo un ejemplo de esto, en cuanto lo tenga lo subo a ver que opinas.
Saludos

Caral
27-10-2010, 22:36:49
Hola
Empecemos:
1- La conexión con la BD se hace en el evento OnCreate del form, ademas busca a la bd en el mismo directorio del exe.
2- Para hacer las ecuaciones se hace lo siguiente:
A- Se selecciona cual ecuación se quiere hacer presionando en el checkbox de la casilla resultado.
B- Se da doble click al dbgrid, con esto se obtiene el primer dato.
C- Se da doble click al dbgrid por segunda vez, con esto se obtiene el segundo dato y se ejecuta el resultado.
Es algo muy sencillo, como no se que es exactamente lo que harás solo te servirá de ejemplo pero funciona.
Saludos

sarias24
27-10-2010, 22:57:31
muchas gracias, esta ok el ejemplo, ya lo demas es complejo, como te habia comentado aqui te muestro el pseudocodigo para ver si puedes ayudarme 1. Ordenar todos los puntos de la nube a triangular por su coordenada X de menor a mayor (En caso de que dos puntos tengan igual coordenada X, se ordenarán por su coordenada Y) 2. Tomar los tres primeros puntos ordenados y formar un triángulo. Este triángulo formará por sí mismo la triangulación de esos tres primeros puntos, y el cierre convexo será el propio triángulo 3. Mientras queden puntos de la nube por triangular, tomar el primero de ellos por orden (punto t) para realizar con él las siguientes operaciones: MIENTRAS (queden puntos sin triangular) p último punto añadido en la triangulación t punto con menor coordenada X de los que quedan por triangular trazar_arista (p, t) MIENTRAS (p no es pto. soporte inferior) p siguiente_en_cierre (p) trazar_arista (p,t) quitar_del_cierre_la_arista (p, anterior_en_cierre (p)) fin MIENTRAS añadir_al_cierre_arista_inferior (p, t) p último punto añadido en la triangulación (valor anterior al MIENTRAS) MIENTRAS (p no es pto. soporte superior) p anterior_en_cierre (p) trazar_arista (p,t) quitar_del_cierre_la_arista (p, siguiente_en_cierre (p)) fin MIENTRAS añadir_siguiente_al_cierre_la_arista (p, t) fin MIENTRAS

sarias24
27-10-2010, 23:05:19
sorry, aqui te lo envio mas organizado



1. Ordenar todos los puntos de la nube a triangular por su coordenada X de menor a mayor (En caso de que dos puntos tengan igual coordenada X, se ordenarán por su coordenada Y)
2. Tomar los tres primeros puntos ordenados y formar un triángulo. Este triángulo formará por sí mismo la triangulación de esos tres primeros puntos, y el cierre convexo será el propio triángulo
3. Mientras queden puntos de la nube por triangular, tomar el primero de ellos por orden (punto t) para realizar con él las siguientes operaciones:
MIENTRAS (queden puntos sin triangular)
p último punto añadido en la triangulación
t punto con menor coordenada X de los que quedan por triangular trazar_arista (p, t)
MIENTRAS (p no es pto. soporte inferior)
p siguiente_en_cierre (p)
trazar_arista (p,t)
quitar_del_cierre_la_arista (p, anterior_en_cierre (p))
fin
MIENTRAS añadir_al_cierre_arista_inferior (p, t)
p último punto añadido en la triangulación (valor anterior al MIENTRAS) MIENTRAS (p no es pto. soporte superior)
p anterior_en_cierre (p)
trazar_arista (p,t)
quitar_del_cierre_la_arista (p, siguiente_en_cierre (p))
fin
MIENTRAS añadir_siguiente_al_cierre_la_arista (p, t)
fin MIENTRAS

Caral
27-10-2010, 23:07:18
Hola
Ya esa parte esta mas compleja y habria que pensarla mas.
Vas a tener que ir poco a poco yo llego a poco en esto de la programacion.
Saludos

sarias24
02-11-2010, 22:26:09
hola te escribo a ver si me puedes ayudar en cuanto al uso del TImage, ya que quiero visualizar los puntos que tengo en mi tabla, cada uno con coordenada (X;Y) y que aparezcan distribuidos en el TImage en dependencia del valor que tienen, saludos y gracias