![]() |
Problema al añadir registro
Buenas a todos, tengo el siguiente problema a ver si alguien me hecha una mano:
delphi7 tengo una tabla access con componente adotable y dataset creo la sentencia sql para acceder a los datos ordenados por apellidos y nombre y asi visualizarlos en un dbgrid. Hasta ahí yodo bien. El problema surge cuando añado algún dato nuevo que en vez de colocarlo donde le corresponda por el orden, lo coloca al final. ej. ana carlos pepe añado bartolo y el resultado debería ser: ana bartolo carlos pepe pero el resultado que me aparece en el grid es: ana carlos pepe bartolo los datos los añado con: tabla.edit; tabla.campo.value:='bartolo'; tabla.campo.post; al cerrar la tabla y volver a abrirla si me aparecen bien ordenados pero en una tabla grande el proceso sería lentísimo, ademáa que yo sepa este problema no debería suceder. Saludos a todos.... |
Saludos
No creo que se refresque el orden al instante. Para que se refleje el orden creo que debes cerrar y nuevamente abrir el AdoTable. |
No sé que componente usas, pero yo he probado con el TADOTable, abriendo una tabla, fijando la property IndexFieldName a nombre, donde nombre es el campo alfanumérico por el que quieres que te ordene, y posteriormente en la aplicación, cuando insertas un nombre haces lo siguiente:
with ADOTable1 do begin Append; FieldValues['nombre'] := edNombre.Text; Post; end; El DBGrid aparece ordenado perfectamente. Un Saludo. Pedro J.Fdez. pedrofdez@ono.com pfsoftware@ono.com |
El problema lo tengo con ADOquery
Efectivamente, tal como comentais funciona, pero el mismo cçodigo usando un adoquery es como me ocurre el problema, al añadir con append y grabar el nuevo registro se me coloca al final y no por su orden que es:
select * from tabla1 order by apellido,nombre la tabla aparece ordenada, pero los nuevos se colocan al final. Desde que cierro y abro se colocan... Sabéis por que puede ser ? |
con un simple adoquery.requery despues del post, se corrige el problema,
otra cosa que puedes hacer es ordenar los datos en tu programa, pero tambien lo tienes que hacer en el afterpost, simple, manda llamar el query sin ninguna ordenacion, ya en tu programa pones: adoquery.sort := 'Apellido ASC Nombre DESC' ; por decir algo y listo! se ordenaran los datos |
Gracias por la respuesta
Gracias lo voy a probar a ver que tal y ya os comento.
Gracias |
La franja horaria es GMT +2. Ahora son las 23:38:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi