![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Creo que no entiendo bien. Veamos, si quieres/necesitas traerte una serie de campos de una serie de registros de una tabla, te traes solamente esos.
Ahí te traes sólamente unos campos que necesitas de una tabla que necesitas y desde una fecha que necesitas, sólamente lo que necesitas.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#2
|
||||
|
||||
|
si, eso lo entiendo, solo tengo que pedir lo que realmente necesite, lo que preguntaba es cuando inicio la aplicacion tengo que asignarle la tabla al query, quiere decir que con poner solo un campo ya me sirve?.
Sobre los campos, en un query, desgraciadamente necesito todos, quiza la clave principal no. |
|
#3
|
||||
|
||||
|
No tienes que asignar nada a ningún query cuando inicias la aplicación. Sólamente lo que necesitas.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#4
|
||||
|
||||
|
Bueno, no te llamaremos burro, pero eso que haces sí que es una burrada.
![]() Es como si teniendo que consultar un libro, pidieras que te trajeran toda la biblioteca. Si la biblioteca está en tu casa, pues ya la tienes ahí. Pero si está en otro edificio tienes que sperar a que la carguen en camiones, y que estos lleguen a tu casa y te la descarguen. Debes cambiar radicalmentela manera en que haces las cosas: Pide sólo un libro o unos pocos, y te los traerá Casimiro en su moto en dos segundos. Así que hazle caso y olvida el select *. Vale, y si, como tu dices, ¿los necesitas todos? En ese caso la soclución también es muy fácil: paginación. Usa una tabla (rejilla o grid o como se diga) con un número limitado de filas, por ejemplo 10, y la rellenas con select * from tabla limit 0,10 (segun la bd podrás usar limit u otra cosa). Si quieres mostrar un paginador haces un select count para saber el numero total de filas y lo divides por el numero de fials en la rejilla para saber el número de páginas. Aún así te iría como el puto culo. Por culpa de los campos blobs, que ocupan mucho. Para esto tienes dos socluciones: la mejor es no usar campos blobs y en su lugar guardar el nombre del archivo, el cual solo será enviado al navegador cuando realmente quieras verlo. La otra es no poner un * en el select y en su lugar especificar los campos que no sean blob, y traerte estsos sólo cuando quieras verlos. Lo que no entoendo es que clase componentes usas, o de que forma lo haces, para que todo eso nque te explico no lo hagan "automáticamente". Un salaudo!
__________________
"la única iglesia que ilumina es la que arde" Anonimo Última edición por Julián fecha: 24-11-2012 a las 22:53:00. |
|
#5
|
||||
|
||||
|
gracias de nuevo por los consejos, de verdad.
Lo que voy a tener que hacer es rehacer todo el programa y aplicar lo que me habeis dicho. Con respecto a los componentes que uso, es, por un lado, lazarus con los zeos. Conecto la base de datos, asignaba el select * from, para las tablas (que ya no lohago ), asigno los datasources y de ahi ya las consultas iniciales.Sobre sacar solo los registros por pagina, es buena solucion, pero como digo, voy a rehacer todo el programa. Aqui la cuestión no es que funcione sino aprender que es la base general y lo importante no desesperarme. Gracias de nuevo a todos. |
|
#6
|
||||
|
||||
|
Tú debes pensar en que estás haciendo un cajero de banco, te habrás fijado que todo es muy simple, sólo pide los datos únicamente necesarios e imprescindibles, realiza una transacción y cuando acaba entonces inicia otra, y siempre pidiendo los datos mínimos posible. Pues ponte en la cabeza algo así.
Si vas a pedir el login y la clave, ¿qué datos te traes? 'select * from tbclientes'?, no, no te traes ninguno. Presentas al usuario el form con el login y la clave y luego buscas sólo el login en la tabla: 'select codigo, login from tbclientes where login= :login'. Si existe entonces procesaremos el password según el codigo que traemos en el select'. Ahora presentas el menú de opciones al usuario y actuaremos según lo que seleccione, por ejemplo, quiere conocer su saldo, entonces como tenemos su código: 'select saldo from tbclientes where codigo= :codigo'. Nada más, que eso, el saldo, no nos ha pedido nada más. Y así con todo, es un ejemplo a lo 'bruto', pero para que te hagas una idea de que debe ser siempre lo mínimo posible necesario e imprescindible.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#7
|
||||
|
||||
|
Gracias nuevamente por las aportaciones.
Me queda totalmente claro lo que me explicas y sí, voy a necesitar reconstruir la aplicación en lazarus porque, para pocas líneas y en monopuesto funcionaba bien, a pesar de que la aplicacion la hice de "andar por casa" pero al pasar de sqlite a firebird y sobretodo en entorno de red, si tarda algo, y mucho más en forma remota. Voy a tener que buscar información sobre los procedimientos, vistas, triggers etc de las bases de datos porque ando perdido. ![]() Pero ya os preguntare si me seguís dando opción. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problemas con conexión a una Base de datos remota. | germancbaarg | Conexión con bases de datos | 1 | 24-04-2008 20:45:00 |
| Conexión a base de datos remota | martinzcr | Firebird e Interbase | 3 | 27-08-2007 19:46:00 |
| Conexion remota a Base de datos | jorelivi | Servers | 1 | 22-06-2007 22:50:11 |
| Lentitud: Conexion a dos bases y dos exe | Alexander | Conexión con bases de datos | 1 | 13-06-2007 20:28:54 |
| Conexion a Base de Datos Remota | juanjoassenza | Firebird e Interbase | 3 | 12-03-2005 01:35:00 |
|