Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > PostgreSQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2005
FlacoNet FlacoNet is offline
Miembro
 
Registrado: jun 2003
Posts: 38
Poder: 0
FlacoNet Va por buen camino
Refrescar datos luego de un SP_insert

hola a todos...
les presento el caso a continuacion
estoy trabajando con ADO y ODBC con postgres...
y estoy intentanto poner TODA la logica de datos y restriccion en el servidor por medio de funciones de postgres (procedimientos almanecedos)..
Es decir...tengo ...

* sp_select_provincias
* sp_insert_provincias
* sp_delete_provincias
* sp_update_provincias

para cada tabla y grilla de datos...La custion es que estoy utilizando (corrijanme si estoy equivocado) el componente TADOQUERY para ejecutar los procedimientos de select y los TADOStoredProc para los insert, delete y update.
A los ABM los hago cargando valores sobre la grilla y antes del POST (BEFOREPOST) tomo los valores del TADOQUERY que esta en modo [dsinsert,dsedit] , ejecuto el correspondiente procedimiento sobre la base de datos y ABORTO por que el POST me daria error. Una vez hecho esto se ingresa el valor a la base de datos perfectamente..
El problema es que si bien tengo el valor en la base de datos, en la grilla no lo tengo y no me queda otra que hacer un refresh de toda la tabla siendo miles de registros y se hace lento....
Hay alguna forma de consultar solo por el que se acaba de ingresar??? de manera de no traer los miles de registros de nuevo??? A este problema lo tiene muy bien solucionado fibplus...con su sentencia REFRESHSQL..donde incluye en su consulta la clausula WHERE con el codigo de la fila recien ingresada.

Muchas gracias y espero que alguien me de una mano----

Responder Con Cita
  #2  
Antiguo 12-01-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
En los ADO tienes Requery, lo que no sé porque nunca se me ha ocurrido hacer la prueba es si se trae otra vez todos los registros o símplemente actualiza la consulta, pruébalo y nos cuentas si te sirve.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 13-01-2005
FlacoNet FlacoNet is offline
Miembro
 
Registrado: jun 2003
Posts: 38
Poder: 0
FlacoNet Va por buen camino
Cita:
Empezado por marcoszorrilla
En los ADO tienes Requery, lo que no sé porque nunca se me ha ocurrido hacer la prueba es si se trae otra vez todos los registros o símplemente actualiza la consulta, pruébalo y nos cuentas si te sirve.

Un Saludo.
la defincion del metodo acepta un param de tipo TExecuteOptions, como sigue:

Código:
procedure Requery(Options: TExecuteOptions = []);
type
  TExecuteOption = (eoAsyncExecute, eoAsyncFetch, eoAsyncFetchNonBlocking, eoExecuteNoRecords);
  TExecuteOptions = set of TExecuteOption;
para ser sincero y leido y no entiendo para que sirven dicho parametro..no le encuentro utilizadad...ademas..solo funciona el valor eoAsyncFetch por que el resto me da error,....
Ah...al parecer me consulta TODOS los registros por que tiene cierta demora....y al ser una TADOQUERY me posisiona el puntero del conjunto de datos al principio...Me gustaria que lo posicione en el recien creado o ingresado luego del requery pero no funciona...lei en la VCL que hay veces que lo que quiero hacer no es posible ...Se me acurrio hacer un LOCATE o SEEK del codigo del articulo para posicionar el cursor pero la verdad que se que es una ANIMALADA...

se te ocurre algo para posicionar el cursor en el ultimo activo???

Mil gracias y por favor no dejen morir el tema..
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


La franja horaria es GMT +2. Ahora son las 18:10:54.


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