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 28-06-2003
fcobanda fcobanda is offline
Miembro
 
Registrado: jun 2003
Ubicación: Saltillo, Coah. Mexico
Posts: 19
Poder: 0
fcobanda Va por buen camino
Post State dsbrowse en un evento calcfields

les agradeceria mucho si alguien puede ayudarme, sucede que hace tiempo desarrolle una aplicacion con delphi 5 enterprise, pero al hacer modificaciones al mismo en algunos modulos en el evento "OnCalcFields" entra con el state = dwBrowse y me marca el error "(DataSet) not in Mode edit o insert" donde DataSet es el Tquery que estoy usando....no cambia el state a DsCalcFields y por esta razon me genera el error....el codigo que estoy usando es el siguiente y como podran ver se esta comprobando al entrar como entra.

SHOWMESSAGE('EN CALCFIELDS');
SHOWMESSAGE(VER_STATE(DmDatos3.PFactura));
SHOWMESSAGE('ORDEN ' + DmDatos3.PFacturaNO_ORDEN.AsString);

DmDatos3.PFacturasTelefonos.Value :=
DmDatos3.PFacturalTelefono.Value + ' ,' +
DmDatos3.PFacturasTelTrab.Value + ' ,' +
Dmdatos3.pfacturalcelular.value;

como podran darse cuenta lo unico que intento es concatenar los telefonos que pudiera tener un cliente en un solo campo calculado que es "sTelefonos"

Tambien me esta pasando en otro modulo que en el evento OnNewRecord entra con state dsBrowse

les agradeceria si alguien me puede ayudar, por que ya le busque y le dedique bastante tiempo a algo tan sencillo que ya he hecho muchas veces y no encuentro el error.
Responder Con Cita
  #2  
Antiguo 28-06-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Hola:

Ten en cuenta que Delphi sólo dispara el evento OnCalcFields tras asignar el estado dsCalcFields, otra cosa que puede suceder es que por equivocación compartas el manejador del OnCalcFields con otro evento diferente, de ahí que entre a ese código con dsBrowse. Lo mismo con el evento OnNewRecord. Otra razón es que se acceda desde otra tabla al mismo manejador de evento.

Revísalo a ver si es eso, que parece lo más probable.
__________________
Guía de Estilo
Responder Con Cita
  #3  
Antiguo 02-07-2003
Avatar de SoftMakerMex
SoftMakerMex SoftMakerMex is offline
Registrado
 
Registrado: jul 2003
Ubicación: Distrito Federal
Posts: 8
Poder: 0
SoftMakerMex Va por buen camino
Quihubo...

Por lo regular el error:

"(DataSet) not in Mode edit o insert"

es el resultado de querer guardar datos en uno o varios campos de una tabla que no pusimos en modo de edición o a la cual no le agregamos un nuevo registro...

te sugiero probar lo siguiente en el código que se debe ejecutar en el evento OnCalcFields, antes de guardar los datos, indica a la tabla que se ponga en modo de edición...

Tabla.Edit;

y al finalizar de guardar los datos salva los cambios...

tabla.post;


Ejemplo:

DmDatos3.Edit;
DmDatos3.PFacturasTelefonos.Value :=
DmDatos3.PFacturalTelefono.Value + ' ,' +
DmDatos3.PFacturasTelTrab.Value + ' ,' +
Dmdatos3.pfacturalcelular.value;
DmDatos3.Post;

Espero que te sea de utilidad esta sugerencia...

hasta pronto...
Responder Con Cita
  #4  
Antiguo 02-07-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Hola:

No se debe llamar a Edit ni a Post dentro de un evento OnCalcFields, ya que esas mismas instrucciones, Edit y Post, disparan ese mismo evento, si AutoCalcFields es TRUE, por lo que entraríamos en un bucle recursivo.

El evento OnCalcFields es disparado por Delphi tras poner el estado del Dataset a dsCalcFields, que permite asignar valores a campos calculados.

Sigo pensando que se está compartiendo el manejador del OnCalcFields con otro evento que por supuesto no se lanza bajo un estado que permita asignar valores, o bien está siendo compartido por otro evento OnCalcFields de otra tabla, por ello al dispararse se estaría tratando de asignar valores no editables en ese momento.

Revisa también que no estés asignando valores a campos NO calculados.
__________________
Guía de Estilo
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 03:27:56.


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