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 13-03-2010
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 19
javier7ar Va por buen camino
Update Failed

Tengo una TQuery con un DataSource que me muestra los datos en una grilla y edito.
La Query tiene CacheUpdates en True y tiene asociado un TUpdateObject, y cuando aprieto el boton "Guardar cambios" llamo al metodo Query.ApplyUpdates;

La Query hace un Select campos from Tabla y en el InsertSQL del UpdateObject tiene algo asi como Insert into (campos) values (:campos)

Hasta ahi todo bien, el problema es cuando modifico el InsertSQL, porque parece que la BDE hace un control despues de ejecutar ese sql, para controlar que a la tabla de la cual hace select la Query se le haya insertado una y solo una fila.
Entonces esto me permite agregar cualquier tipo de codigo sql antes de la instruccion que inserta en la tabla que es seleccionada por la query, pero no puedo agregar codigo despues de esa instruccion, y lo que es mas, no puedo reemplazar esa instruccion por una llamada a un stored procedure que haga el inster en esa tabla, que es lo que quiero hacer.
Lo mismo pasa al querer modificar el UpdateSQL y el DeleteSQL

El error que me tira es justamente "Update Failed"

La base de datos es SQL Server, y la conexion es usando un Alias de la BDE con el driver MSSQL.

Espero no haber aburrido, pero queria explicar bien para que se entendiera.
Si alguien tiene una idea de como lo puedo solucionar o por donde puedo buscar, sera bienvenido.
Gracias y abajo pongo unos ejemplos de codigo para ilustrar la situacion.


SQL de la Query:
Código SQL [-]
Select idArticulo, Descripcion, Precio
from Articulos

InsertSQL del TUpdateObject (generado automáticamente por Delphi):
Código SQL [-]
insert into Articulos(idArticulo, Descripcion, Precio)
values (:idArticulo, escripcion, :Precio)

InsertSQL del TUpdateObject (editado y funcionando):
Código SQL [-]
insert into Stock(idArticulo, Stock)
values(:idArticulo,0)

insert into Articulos(idArticulo, Descripcion, Precio)
values (:idArticulo, escripcion, :Precio)

InsertSQL del TUpdateObject (editado, esto no funciona, tira Update Failed):
Código SQL [-]
insert into Articulos(idArticulo, Descripcion, Precio)
values (:idArticulo, escripcion, :Precio)

insert into Stock(idArticulo, Stock)
values(:idArticulo,0)
Como veran, solo cambie el orden de las instrucciones

InsertSQL del TUpdateObject (editado, esto tampoco funciona, tira Update Failed):
Código SQL [-]
exec SP_Inserta_Articulo :idArticulo, escripcion, :Precio
SP_Inserta_Articulo es un Stored Procedure que solo hace el insert en la tabla Articulos

Última edición por javier7ar fecha: 13-03-2010 a las 01:11:20.
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
Connection Failed el-mono Conexión con bases de datos 1 24-12-2008 03:02:30
Error: Update Failed Rogersito Plus Firebird e Interbase 7 09-09-2008 16:10:50
Update Failed marilinspi OOP 2 14-03-2008 22:02:48
UPDATE con seccion llamada UPDATE sql's MyDAC karlaoax SQL 4 25-04-2007 22:10:50
A call to OS failed VRO OOP 5 20-07-2005 11:52:59


La franja horaria es GMT +2. Ahora son las 03:43:24.


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