Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
IbQuery - Params

Hola:
Estoy examinándo un programa algo antiguo en el que entre otras, tengo dos tablas Maestro/Detalle, son dos IbQuery. Ambos tienen su respectivo UpdateSql.
El Query Detalle recibe dos Params del Maestro (Ejercicio y Numero), que obviamente están debidamente referenciados en el Maestro.

La cuestión es que todo funciona "bien". Es decir: visualizándo los correspondientes datos en un formulario y trabajando con los datos, estos son correctos (Maestro / Detalle), pero ahora viene el problema que me he encontrado.

Resulta que he implementado un mecanismo en el que dos bucles recorren un determinado número de registros y actualizan un valor para que se disparen los triggers de la tabla detalle algo mas o menos así:

Código Delphi [-]
//Resumido
While not eof // Maestro
Begin 
   While not eof // detalle
    Begin
      Edit...
      Post... // No sería necesario pero para claridad.
      next...
    End
Next
End;

Bueno, pues estoy bastante espeso con este asunto porque el resultado de los bucles es que solamente afecta al primer registro maestro y solamente modifica los registros detalles del 1 Maestro...

Resulta que he testeado "TODO" y me he encontrado que en dicho bucle, el QueryDetalle, no cambia el parámetro NUMERO, a pesar de que el Maestro si va cambiando.

He probado a ponerle un valor determinado al parámetro por ejemplo 55000, y resulta que se queda fijo, es decir, no cambia en virtud del valor del Query Master.

Le estoy dando bastantes vueltas al asunto, y no llego a encontrar el motivo de este "desajuste".

Utilizo los IBX originales (los que vienen con Delphi 7), y Firebird no tiene nada que ver con todo esto (aparentemente).

Alguna aportación ??

Gracias
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #2  
Antiguo 14-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Hola amigos, me autorrespondo:

Tal como he leído en un mensaje por ahí... que decía: "mejor fajense a solucionar y encontrar respuestas" y aunque la cosa no iba conmigo, mas o menos así he hecho.

Pues resulta que pensando en lo comentado anteriormente, se me ha ocurrido quitar una línea, concretamente la de Ibqueryxxx.DisableControls y.... solucionado.
Así y todo, no acabo de comprender ese comportamiento del Params..

Saludos.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #3  
Antiguo 15-07-2007
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
La cuestión tiene su lógica, supongo. ¿Cómo hace DisableControls para inhibir la actualización de los controles data aware? No puede ir por ahí deshabilitando cada uno de los controles conectados al dataset. En su lugar, imagino que lo que hace es cortar el paso de información a través de los datasource conectados (cada dataset mantiene una lista de los datasource conectados a él). Pero una relación maestro detalle se realiza mediante un datasource, así que el efecto colateral es el que ya observaste.

Esto me dice la lógica, pero si no te convece, quizá lo haga el manual :

Cita:
Empezado por manual del Delphi
If the dataset is the master of a master/detail relationship, calling DisableControls also disables the master/detail relationship. Setting BlockReadSize instead of calling DisableControls updates the detail datasets as you scroll through the dataset, but does not update data-aware controls.
Además te muestra la alternativa para mantener los controles desconectados.

// Saludos
Responder Con Cita
  #4  
Antiguo 15-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Fallo neruronal mas que de params...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
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
modificar en tiempo de ejecución params joanajj Conexión con bases de datos 0 02-05-2006 23:50:23
Problema con Params utopico SQL 5 31-01-2006 03:28:17
IBUpdateSQL - IBQuery dmagui Firebird e Interbase 3 11-07-2005 16:59:54
utilizacion del tquery y la propiedad params desve Tablas planas 2 03-06-2005 04:36:48
IBdataset.Params con error Renees Conexión con bases de datos 1 24-05-2005 23:59:09


La franja horaria es GMT +2. Ahora son las 13:30:04.


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