Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-03-2004
Robert Robert is offline
Miembro
 
Registrado: jul 2003
Ubicación: Lima -Peru-
Posts: 25
Poder: 0
Robert Va por buen camino
Prepare y Unprepared ¿como?

Hola con todos:
Estoy trabajando en un sistema de cuentas corrientes de clientes, y tengo el siguiente caso. Tengo un query el cual tiene dos parametros (COD_CLIE y FECHA_DE_CORTE), este query esta dentro de un while de la tabla CLIENTES
El query1 tiene la siguiente sentencia
"SELECT DISTINCT COD_CLIE, REFER from CUENTAS"
"WHERE COD_CLIE=a1 and FECHA_CORTE<=a2

y esta es la parte del código que se tiene que ejecutar

while not eof CLIENTES do
begin
query1.close;
query1.Unprepared;//se supone que es para liberar recursos
query1.params[0].value:=CLIENTESCOD_CLIE.value;
query1.params[1].value:=fecha//una fecha x
query1.prepared;//se supone que es para asignar recursos para la consulta
query1.open;
while not query1.eof do
begin
//aca viene una serie de sentencias
query1.next;
end;
CLIENTES.next;
end;

Tengo entendido que el prepared y Unprepared te asigna y quita recursos de las consultas que se realiza.
PERO para un rango de CLIENTES grande(unos 1000 registros) el sistema se cualga y sale un mensaje "Capacibylitid not suported" algo así como capacidad no soportada. Mi consulta es que en que estoy fallando o tal vez hay otros métodos para liberar memoria o algo así.
GRACIAS...........
Responder Con Cita
  #2  
Antiguo 18-03-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Puedes preparar un query en servidores que soporten este tipo de tratamiento, en este momento no recuerdo el nombre, pero la idea es que en las consultas batch (o consultas que se repiten en diferentes terminales para algunos motores), queden compiladas en el servidor, con todo el proceso que esto significa (Parseo, comprobación sintáctica, optimización...) y que solo al momento de ser ejecutadas se pasen los valores variables (parámetros).
Digamos que si vas a insertar 1000 registros, solo prepararás el query la primera vez, y luego cambiarán los parámetros con lo que el servidor evitará recompilar la consulta para cada registro.

Espero haber sido claro, creo que me trabé un poquito al redactarlo
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 18-03-2004
Avatar de haron
haron haron is offline
Miembro
 
Registrado: may 2003
Ubicación: Las Palmas de Gran Canaria
Posts: 310
Poder: 21
haron Va por buen camino
he usado alguna vez la sentencia 'prepare' para agilizar sentencias y no he encontrado beneficio alguno. las sentencias seguian ejecutandose igual de rapidas (o lentas).

yo no me complicaria la vida.

de todas formas si ves que el programa va mas rapido usando estas sentencias nos lo dices.
__________________
“Plantad la semilla de la avaricia en la infértil tierra de la estupidez y obtendreis la bella flor de la mierda”
(Confucio)
Responder Con Cita
  #4  
Antiguo 18-03-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por haron
he usado alguna vez la sentencia 'prepare' para agilizar sentencias y no he encontrado beneficio alguno. las sentencias seguian ejecutandose igual de rapidas (o lentas).

yo no me complicaria la vida.

de todas formas si ves que el programa va mas rapido usando estas sentencias nos lo dices.
Bueno, yo no estoy tan de acuerdo con eso...
Por ejemplo, cualquier DBA de Oracle si quiere optimizar al máximo su servidor, exigirá a los programadores que trabajen con esta metodología, sobre todo la utilización de parámetros, porque las consultas compiladas quedan en cache en el servidor.
Obviamente que estamos hablando de configuraciones grandes, con muchos usuarios en línea, para un programa de un almacén, ni me preocuparía.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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 08:17:13.


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