Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2010
mantraxer21 mantraxer21 is offline
Miembro
 
Registrado: ago 2010
Posts: 94
Poder: 14
mantraxer21 Va por buen camino
Cannot Modify

Estimados:

Estoy trabajando con 1 DataSet y su DataSource respectivo.

En el evento onclick del Boton Nuevo Registro, tengo esto:

Código Delphi [-]
dataSet1.close;
dataSet1.Open;
dataSet1.Append;

Las propiedades del DataSet.

Active := true;
CachedUpdates := true;
DataBase := (asignado su bd)
Generator Field. = (asignado su generator)
Select Sql : Select campo1, campo2 from tabla;


Al momento de hacer click en el Boton nuevo, me manda el mensaje de error

Código Delphi [-]
Cannot Modify a read-only dataset

hace tiempo me dio algo similar o lo mismo pero se me olvidó la solución

Gracias
Responder Con Cita
  #2  
Antiguo 25-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola mantraxer.

El problema es que no tenés definidos: ModifySQL, InsertSQL, DeleteSQL y RefreshSQL.

Hacé lo siguiente:
Cita:
.- Posicionate sobre el IBDataSet.
.- Hacé click con el botón derecho del mouse.
.- Click sobre el item DataSet Editor.
.- Hacé click sobre el botón Select Primary Key (y elegi la clave primaria)
.- Hacé click sobre el botón Generate SQL.
.- Click sobre el botón OK.
Saludos.
Responder Con Cita
  #3  
Antiguo 25-08-2010
mantraxer21 mantraxer21 is offline
Miembro
 
Registrado: ago 2010
Posts: 94
Poder: 14
mantraxer21 Va por buen camino
Hola ecfisa :

Tu respuesta ya realicé los pasos , y aún así me sigue dando el mensaje !

El DataSet Maestro, asigne el primary key y luego los campos de la otra columna, posterior a ello... Ok

Saludos
Responder Con Cita
  #4  
Antiguo 25-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola mantraxer.

Es realmente muy extraño...

¿ Probaste en el Object Inspector de que realmente esté asignado el código SQL en: SelectSQL, InsertSQL, ModifySQL, DeleteSQL y RefreshSQL ?

Saludos
Responder Con Cita
  #5  
Antiguo 25-08-2010
mantraxer21 mantraxer21 is offline
Miembro
 
Registrado: ago 2010
Posts: 94
Poder: 14
mantraxer21 Va por buen camino
Holas:

Efectivamente...


DESPACHO -> ID_DESPACHO By 1 (generator field)

Código SQL [-]
Select FECHA_DES, ID_CAMION, ID_CHOFER, ID_COMUNA_DES, ID_DESPACHO, NUMERO_DESPACHO, TOTAL_DES from DESPACHO;
(select Sql)

DataSet:
Cached Updates := true
Active:= false
Dabase:= asignada !

Evento Oncreate del Formulario

Código Delphi [-]
dsDespacho.Active:=true;


Evento OnClick del Boton Nuevo:

Código Delphi [-]
dsDespacho.Close; 
dsDespacho.Open; 
dsDespacho.Append;
Responder Con Cita
  #6  
Antiguo 25-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo mantraxer.

Suponiendo que ID_CAMION sea PRIMARY KEY, cuando realizás los pasos que te puse arriba te debería quedar así:

En SelectSQL:
Código SQL [-]
 select FECHA_DES, ID_CAMION, ID_CHOFER, ID_COMUNA_DES, ID_DESPACHO, NUMERO_DESPACHO, TOTAL_DES 
  from DESPACHO

En ModifySQL:
Código SQL [-]
update DESPACHO
set
  FECHA_DES = :FECHAD_DES,
  ID_CAMION = :ID_CAMION,
  ID_CHOFER = :ID_CHOFER,
  ID_COMUNA_DES = :ID_COMUNA_DES,
  ID_DESPACHO = :ID_DESPACHO,
  NUMERO_DESPACHO = :NUMERO_DESPACHO,
  TOTAL_DES = :TOTAL_DES
where ID_CAMION = OLD_ID_CAMION

En InsertSQL:
Código SQL [-]
insert into DESPACHO
 (FECHA_DES, ID_CAMION, ID_CHOFER, ID_COMUNA_DES, ID_DESPACHO, NUMERO_DESPACHO, TOTAL_DES)
values
(:FECHA_DES, :ID_CAMION, :ID_CHOFER, :ID_COMUNA_DES, :ID_DESPACHO, :NUMERO_DESPACHO, :TOTAL_DES)

En DeleteSQL:
Código SQL [-]
delete from DESPACHO
where ID_CAMION = :OLD_ID_CAMION

En RefreshSQL:
Código SQL [-]
select 
  FECHA_DES, ID_CAMION, ID_CHOFER, ID_COMUNA_DES, ID_DESPACHO, NUMERO_DESPACHO, TOTAL_DES
from DESPACHO
where ID_CAMION = :ID_CAMION

Ahora si en el Object Inspector hacés doble click sobre ellas y en alguna no está el código SQL que acabo de ponerte,
repetí con cuidado los pasos los pasos que te mencioné, si no... sinceramente no sé lo que está pasando.


Saludos.

Última edición por ecfisa fecha: 25-08-2010 a las 18:42:53.
Responder Con Cita
  #7  
Antiguo 25-08-2010
mantraxer21 mantraxer21 is offline
Miembro
 
Registrado: ago 2010
Posts: 94
Poder: 14
mantraxer21 Va por buen camino
En este caso la llave primaria es "ID_DESPACHO". y están de la siguiente forma.

Select Sql:
Código SQL [-]
select FECHA_DES, ID_CAMION, ID_CHOFER, ID_COMUNA_DES, ID_DESPACHO, NUMERO_DESPACHO, TOTAL_DES from DESPACHO;

Modify Sql:
Código SQL [-]
update DESPACHO
set
  FECHA_DES = :FECHA_DES,
  ID_CAMION = :ID_CAMION,
  ID_CHOFER = :ID_CHOFER,
  ID_COMUNA_DES = :ID_COMUNA_DES,
  ID_DESPACHO = :ID_DESPACHO,
  NUMERO_DESPACHO = :NUMERO_DESPACHO,
  TOTAL_DES = :TOTAL_DES
where
  ID_DESPACHO = :OLD_ID_DESPACHO

Insert Sql

Código SQL [-]
insert into DESPACHO
  (FECHA_DES, ID_CAMION, ID_CHOFER, ID_COMUNA_DES, ID_DESPACHO, NUMERO_DESPACHO, 
   TOTAL_DES)
values
  (:FECHA_DES, :ID_CAMION, :ID_CHOFER, :ID_COMUNA_DES, :ID_DESPACHO, :NUMERO_DESPACHO, 
   :TOTAL_DES)

Delete Sql:

Código SQL [-]
delete from DESPACHO
where
  ID_DESPACHO = :OLD_ID_DESPACHO

Refresh Sql:

Código SQL [-]
Select 
  FECHA_DES,
  ID_CAMION,
  ID_CHOFER,
  ID_COMUNA_DES,
  ID_DESPACHO,
  NUMERO_DESPACHO,
  TOTAL_DES
from DESPACHO 
where
  ID_DESPACHO = :ID_DESPACHO
Responder Con Cita
  #8  
Antiguo 25-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Esta todo bién...

Aunque no pareciera que afectara en nada:

Hacé una prueba desactivado CachedUpdates.

Estando el IBDataSet abierto, no es necesario cerrarlo y abrirlo como un Query, solo necesitás:
Código Delphi [-]
  dsDespacho.Append;


Saludos.

Última edición por ecfisa fecha: 25-08-2010 a las 19:19:25.
Responder Con Cita
  #9  
Antiguo 26-08-2010
mantraxer21 mantraxer21 is offline
Miembro
 
Registrado: ago 2010
Posts: 94
Poder: 14
mantraxer21 Va por buen camino
Resuelto !!!

La verdad se hicieron todos los pasos y nada de nada...

Como era algo de prueba pensé que algo fallo en el diseño de la base de datos, cosa que creé nuevas tablas con sus generadores, trigger, indices, realizé los pasos de maestro/detalle con los controles dataset, y la verdad todo me funcionó.

En resumen, creo que se diseñó mal algo en las tablas involucradas.

Saludos Cordiales y muchas gracias
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
Evalute/Modify, Delphi 5 y Strings de 4KB Lord Delfos Varios 1 28-02-2008 21:54:36
Error 'Cannot modify a read-only dataset' karaoke Varios 8 10-12-2007 06:38:31
error cannot modify a read-only dataset Renees Varios 2 30-09-2006 00:39:27
Modify y distinct no funcionan juntos el_barto Conexión con bases de datos 2 29-07-2005 20:27:52
Query1 cannot modify a read-only dataset Nbull SQL 14 14-12-2004 10:29:35


La franja horaria es GMT +2. Ahora son las 10:55:08.


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