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 21-11-2007
Jvilomar Jvilomar is offline
Miembro
 
Registrado: mar 2004
Ubicación: Republica Dominicana
Posts: 97
Poder: 21
Jvilomar Va por buen camino
Problema con Insert dentro de Evento BeforePost

Saludos mis queridos amigos...

Me gustari saber si pueden alludarme a solucionar una duda...

Utilizo Delphi 7, Con TADOQuery y me conecto a una Base de Datos SQL SErver 2000.

Tengo dos tablas T1 y T2 lo que deseo es que en el evento BeforePost de la Tabla 1 me haga una insercion de ciertos datos en la T2. Pero no puedo conseguir que ejecute la insercion en la t2.


Código Delphi [-]
procedure DataModulo.aoqryAnularBeforePost(DataSet : TDataSet);
Begin
     with qryConsulta do
         begin
            Connection := SGGC;
            Close;
            SQL.Clear; 
            SQL.Add('Select * from tClientesApartamentos where idCuenta =:idCliente');
            Parameters[0].Value := DataSet['idCliente'];       
            Open;
            if IsEmpty then
               begin
                  with qryActualizar do
                     begin
                       Connection := SGGC;
                       Close;
                       SQL.Clear; 
                       SQL.Add('Insert into tClientesApartamentosTrans ');
                       SQL.Add('Select * from tClientesApartamentos where idCuenta =:idCliente');
                       ExecSQL;
                  End;
            End;
       End;
End;


el asunto es que cuando ejecuto el query que hace la insercion me parece que pierdo el estado del primer query.. podria alguien confirmarme que sucede o a lo mejor darme una idea de hacer esto mismo de una forma menos chapusera...

Gracias de AnteMano
__________________
El conocimiento es un Patrimonio Universal....

Última edición por Jvilomar fecha: 21-11-2007 a las 15:55:09.
Responder Con Cita
  #2  
Antiguo 21-11-2007
hades2600 hades2600 is offline
Registrado
 
Registrado: nov 2007
Ubicación: España
Posts: 4
Poder: 0
hades2600 Va por buen camino
En ese código veo varios problemas.

En primer lugar tienes dos instrucciones with anidadas. Eso puede provocar que Delphi se vuelva loco y no tenga claro sobre qué consulta tiene que ejecutar cada una de las instrucciones. No debería tener nada que ver con tu problema, pero puede ayudar a leer mejor el código, tanto tú como como Delphi.

En segundo lugar, no tienes ningún tipo de protección de las instrucciones, es decir, no controlas que si alguna de la consulta de inserción produce un error, no se ejecute la instrucción principal (sentencia try...except/finally...end).

A la vista de tu código creo que tu problema viene porque intentas insertar en la tabla tClientesApartamentosTrans una serie de valores nulos (fíjate bien y verás:

if IsEmtpy then <- Hace referencia a QueryConsulta

después el insert lo haces con la misma tabla que te ha salido que está en blanco.

Además, ten en cuenta que no has asignado ningún valor al parámetro de la consulta de inserción, con lo cual puedes tener cualquier cosa en el parámetro menos lo que toca.

No sé si me explicado bien. Si tienes alguna duda, no dudes en preguntar.
Responder Con Cita
  #3  
Antiguo 21-11-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Un consejo, si usas Sql Server 2000, aprovecha la potencia de los procedimientos almacenados.

Puedes hacer un procedimiento que inserte en la primera tabla y despúes de esa inserción, proceda a insertar en la segunda.

Suerte
__________________
Conoce mi blog http://www.edgartec.com
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
Problema con update omarifr SQL 3 06-08-2007 23:28:38
Insert y Update al mismo tiempo dentro de php analondo Firebird e Interbase 3 20-02-2007 20:40:56
Problema con update pache Firebird e Interbase 4 22-11-2006 21:08:06
BeforePost y TField.Required rafa_adrim Conexión con bases de datos 5 09-02-2006 13:47:36
Evento en componente dentro de frame Kafu OOP 9 02-06-2003 17:19:27


La franja horaria es GMT +2. Ahora son las 22:14:05.


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