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

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 06-08-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

En efecto, los querys del RDM són abiertos automaticamente por los Providers, por lo que no hace falta que los dejes abiertos (es más quizá te puede traer problemas, puesto que quizá no pueda actualizar los datos para refrescarlos, ya que se encuentre con el dataset abierto, aunque no estoy seguro).

En todo caso no tiene nada que ver con el problema. Las modificaciones no se realizan sobre esos querys (piensa que que los querys dbExpress són de solo lectura). Las actualizaciones són enviadas directamente por el provider, a la base de datos mediante una sentencia INSERT / UPDATE / DELETE ejecutada directamente sobre el SQLConnection.

El problema tiene que venir en tu código, al evaluar SourceDS.FieldByName('ER_CODCIU').Value. Puesto que como puedes ver en la ayuda, SourceDS a veces puede ser nil.

SourceDS contiene los valores del DataSet antes de que se hiciera ningún cambio. Entonces si estás haciendo una inserción ¿ que hay en SourceDS ? ¿ Un DataSet vacío ?.

Tienes que consultar el DeltaDS que apunta al registro con los cambios que se van a realizar.

NOTA : Para comprobar los datos antes de insertarlos, está bien utilizar el evento BeforeUpdateRecord. Pero para otras cosas será mejor utilizar el AfterUpdateRecord, por ejemplo si quieres actualizar la tabla de Stocks al añadir un producto en una Venta, lo debes hecer en el AfterUpdateRecord, para asegurarte de que solo se realiza si el registro ha sido añadido correctamente a la Base de Datos.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
 



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 02:32:39.


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