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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-10-2006
jorllazo jorllazo is offline
Miembro
 
Registrado: sep 2006
Ubicación: Valencia, España
Posts: 83
Poder: 18
jorllazo Va por buen camino
Usar Evento OnAfterSCroll de un TQuery?

Hola Amigos,
Tengo un Query con una consulta que me devuelve ciertos campos de una tabla "Customers" los cuales muestro en una grid, despues tengo un objeto TCustomer con su metodo "LoadFromDatabase" que carga todos los datos del customer en base al IDCustomer que tenga seleccionado en ese momento en el Registro actual del Query.

Para esto en el evento OnAfterScroll del query tengo el codigo que lee el campo IDCustomer del Registro y se lo pasa como parametro al metodo LoadFromDatabase(custID) el cual devuelve el objeto con todas sus propiedades.

El problema viene que esta operacion me he dado cuenta que por ejemplo cuando el query se abre o se ejecuta la sentencia, se puede llegar a realizar 3 Veces, y de momento aun no esta completado objeto con otdas sus propiedades, pero luego puede ser un proceso lento y si se repite tantas veces, no creeis que es inncesario.

La pregunta es si esto se puede poner en algun otro evento o algo asi ya que quiero que me responda cuando haga Query.First, Query.Next etc., he mirado de ponerlo en el codigo del boton que dispara esto eventos pero entonces deberia añadirlo en muchos sitios mas por ejemplo cuando se haga click en la grid principal.

Si se os ocurre algo mejor, si no lo dejare como esta.
__________________
Gracias de Antemano
Responder Con Cita
  #2  
Antiguo 03-10-2006
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
Una pregunta: ¿cuál es el objeto de una operación como LoadFromDatabase? ¿No están ya los datos en el Query?

// Saludos
Responder Con Cita
  #3  
Antiguo 03-10-2006
jorllazo jorllazo is offline
Miembro
 
Registrado: sep 2006
Ubicación: Valencia, España
Posts: 83
Poder: 18
jorllazo Va por buen camino
No,

En el Query, unicamente estan datos como Nombre, Nombre comercial, Nif, Fecha de Alta. (de momento estos 4).

LoadfromDatabase, carga todo tipo de datos relacionados con el cliente, tipo de iva asociados, numeraciones asociadas. descuentos, documentos de venta, informes comerciales asociados, creo que es una gran cantidad de datos sensible de ser modificada en cualquier momento con lo que la informacion que obtuviesemos en el query, estaria desactualizada en cualquier momento, quitado de la gran cantidad de datos que deberiamos tener cargados en memoria en todo momento.

A lo que le estoy dando vueltas desde que escribi el post, es que cargar, todo estos datos cada vez que el usuario se mueva por el registro tampoco va a ser muy eficiente, puesto que si tenemos a 5 usuarios navegando por la tabla de clientes, se llenaria el servidor con continuos accesos. Queza sea mejor opcion un Boton de "Ver Cliente" que ejecutase esta sentencia (load fromDatabase y rellenase los controles con el valor del objeto.?

Es lo que se me ocurrio, si crees que no es eficaz, por favor comentamelo y miramos algo mejor....
__________________
Gracias de Antemano
Responder Con Cita
  #4  
Antiguo 03-10-2006
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
Más o menos imaginaba algo así y creo que tú mismo ya te has contestado. Ni siquiera tienes que considerar el escenario de varios usuarios. Con uno solo que le de por moverse por el grid que muestre los datos, ya tienes un acceso a la base en cada movimiento. El botón de "Ver cliente" es, me parece, la mejor opción: sólo cargas los datos de un cliente cuando el usuario realmente los quiere ver.

// Saludos
Responder Con Cita
  #5  
Antiguo 03-10-2006
jorllazo jorllazo is offline
Miembro
 
Registrado: sep 2006
Ubicación: Valencia, España
Posts: 83
Poder: 18
jorllazo Va por buen camino
No, si al final aprendere.... jeje
muchas gracias y para lo que necesiteis
__________________
Gracias de Antemano
Responder Con Cita
  #6  
Antiguo 03-10-2006
Ade Ade is offline
Miembro
 
Registrado: jul 2006
Ubicación: Murcia
Posts: 70
Poder: 18
Ade Va por buen camino
Hola a todos
jorllazo tu tras realizar la consulta la muestras en un dbgid y alli seleccionas el cliente y luego pulsando el boton ver cliente t aparecen todos los datos , estoy en lo cierto??

si es asi podrias mostrarme tu consulta del query y las opciones que modificaste del dbgrid para poder seleccionar ?
como se cargan los datos tras pulsar el boton de ver cliente??
con un locate sobre el codigo del cliente seleccionado?

es q trato de hacer lo mismo pero para modificar, y en el dbgid me aparece una flechita negra en un registro aleatorio ( eso creo pues ni es el 1º ni el último) y solo puedo seleccionar esa fila, y tengo la opcion dgselectrow a true.

gracias
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
Hacer una pausa fuera del evento OnTimer y sin usar Sleep DarkByte Varios 9 28-06-2007 04:08:00
Llamar evento desde otro evento nachito_tuc OOP 1 23-08-2006 21:37:43
TQuery nenufer Conexión con bases de datos 2 22-05-2006 16:41:03
Usar o no Usar un DBGrid Anabel Conexión con bases de datos 13 13-01-2006 20:05:21
RequestLive de TQuery no puede, q mas puedo usar? nefy SQL 3 21-06-2004 19:19:19


La franja horaria es GMT +2. Ahora son las 09:52:34.


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