![]() |
![]() |
| 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
|
|||
|
|||
|
Gracias Ramon......sigo
Si Ramon, pero di fuera por lo que tu dices no se ejecutaria para ningun parametro de clientes, la cosa aqui es que se ejecuta para un pequeno rango de clientes y este es el código.
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 voy insertando datos en una tabla auxiliar query1.next; end; CLIENTES.next; end; He estado tratando de ver si es alguna configuracion del BDE ya que trabajo con paradox, pero no encuentro nada, a ver si me puedes hechar una mano GRACIAS........... |
|
#2
|
||||
|
||||
|
Comencemos aclarando que mi nombre no es Ramón, sino Román.
Pasado este álgido punto te comento que a juzgar por lo que veo en tu código los parámetros en tu consulta sql están mal especificados. Cada parámetro debe estar antecedido de ':'Código:
SELECT DISTINCT COD_CLIE, REFER from CUENTAS WHERE COD_CLIE=:a1 and FECHA_CORTE<=:a2 Código:
Query1.ParamByName('a1').AsInteger := CLIENTESCOD_CLIE.value;
Query1.ParamByName('a2').AsDate := fecha
Por otra parte, no creo que usar Query1.Unprepare sirva para liberar recursos y de hecho no tiene mucho sentido usar Unprepare y Prepare cada vez que ejecutes la consulta. El método Prepare sirve para consultas parametrizadas que se usan muchas veces y en las que sólo cambia el valor de los parámetros. Prepare 'compila' la consulta de manera que subsecuentes llamadas se realicen más rápidamente y en tal caso se hace una vez antes de muchas consultas del mismo tipo y sólo se usa Unprepare al final de estas muchas consultas. Si la consulta no se usa demasiado no creo que valga mucho la pena usar Prepare y Unprepare. // Saludos |
|
#3
|
|||
|
|||
|
Gracias Roman........
Efectivamente, la consulta está correcta, se ejecuta para un rango no muy grande de clientes, el problema viene para una tabla de clientes muy grande(unos 10,000 registros), ojo que uso paradox, la consulta tiene que recorrer esos 10,000 clientes y buscar sus referencias en la tabla cuentas que son mas de 100,000 registros hice la prueba compilando paso a paso (F8) y cuando llega la consulta se demora ligeramnete en abrirla(tengo que presionar hasta 5 veces el F8, para que abra la consulta), tal vez haya algo que hacer, pero la cuestion es que en el mensaje de error me sale "CAPABILYTI NOT SUPPORTED" o en algunos veces "INVALID PARAMETER", mi consulta es que por que me salen esos mensajes, que significan, que tengo que hacer.
OBS: solo me sale cuando la consulta es para un rango de clientes muy grande. Otra cosa, ¿será por que utilizo paradox? GRACIAS........ |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|