Club Delphi  
    Paypal   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 05-02-2011
rarratia rarratia is offline
Miembro
 
Registrado: sep 2004
Posts: 50
Poder: 22
rarratia Va por buen camino
Controlar insert del DataSetProvider

amigos, tengo un componente TADOSQl en donde leo los datos de una tabla, pero entre esos datos leo un dato de otra tabla con un Left Outer Join

Ahora bien, el TADOSql está conectado con DataSetProvider y este a un clientdataset luego todo bien, pero cuando hago el ApplyUpdate(0) entonces arroja un error, en el insert trata de insertar el campo que viene de la otra tabla y que no existe. Son nuevo en esto. ¿Hay alguna forma de cambiar los capos a insertar en el DataSetProvider? ¿Existe alguna propiedad para eso?
Responder Con Cita
  #2  
Antiguo 07-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 19
rgstuamigo Va por buen camino
Arrow

Creo que estas confudiendo las cosas...
Si tienes una consulta SQL que trae los datos de dos o mas tablas de tu base de datos(Inner join, Left join, Right join,etc), es lógico que eso sólo te sirve como vista o visualizacion de Datos y no para Insertar, editar, o elimnar registros...(a no ser que tu Servidor tengas esas cualidades)
Si estas tratando de insertar, o editar nuevos registros lo que se debe hacer es hacerlo por parte, es decir, si se tratase de tablas maestra detalle, entonces es logico que al tratar de insertar nuevos registros, debes hacer la insercion primero a la tabla maestra y luego a la tabla detalle, eso se hace para que el servidor de Base de dato no te mande una excepcion al verificar la Integridad referencial.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 07-02-2011 a las 19:25:30.
Responder Con Cita
  #3  
Antiguo 07-02-2011
rarratia rarratia is offline
Miembro
 
Registrado: sep 2004
Posts: 50
Poder: 22
rarratia Va por buen camino
Controlar insert del DataSetProvider (Solucionado)

Amigo, mi consulta iba dirigida a que tenía una actualización de aplicación en tres capas:

un TAdoConnection
un TAdoQuery
un TAdoProvider
un TClientDataSet
un TDAtaSource

La idea es que la consulta del TAdoQuery tiene un Left Outer Join entre sus cláusulas, por lo tanto un campo de otra tabla que no figura en la actualización. Si uno hace varios cambios en el TClientDataSet y quiere actualizar los datos en el motor de datos, entonces se hace un ApplyUpdate y este generaba un error porque uno de los campos no es actualizable. La solución era sencilla, no necesitaba interceptar el insert, bastaba, en la definición de campos en el TAdoQuery, en la propiedad ProviderFlags, definir este campo como: pfInUpdate a False Con esto el DataSetProvider no toma este campo cuando se ejecuta el ApplyUdate(0)

Gracias a los amigos por las ideas, saludos
Responder Con Cita
  #4  
Antiguo 07-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 19
rgstuamigo Va por buen camino
Me alegra que hayas solucionado tu problema sin embargo quizas puedas hecharle una mirada a estas cincos partes ( 1, 2, 3, 4 y 5) que te pueden ayudar a mejorar la calidad de tu aplicacion.
Básicamente por que en esos artículos no se utiliza un solo Query (TAdoQuery) como segun entiendo lo haces tú, sino mas bien dos Query y eso se hace por motivos de mantenimiento. Pero mejor dale una hojeada y vé si te puede ayudar en algo.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 07-02-2011
rarratia rarratia is offline
Miembro
 
Registrado: sep 2004
Posts: 50
Poder: 22
rarratia Va por buen camino
Talking Controlar insert del DataSetProvider (Solucionado)

Muchas gracias, he guardado los artículos para estudiarlos.
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
Como actualizo con DataSetProvider? felixgo Conexión con bases de datos 1 11-01-2011 18:16:22
DataSetProvider david duarte Providers 3 19-01-2006 15:10:57
IBQuery --> DataSetProvider --> ClientDataset pinoxito Conexión con bases de datos 8 16-11-2005 20:40:34
Dbf/Ntx en RemoteDataModule/DataSetProvider StartKill Tablas planas 2 09-03-2005 21:45:33
Cambio a DataSetProvider Bretema Firebird e Interbase 0 12-10-2004 13:20:32


La franja horaria es GMT +2. Ahora son las 22:53:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi