FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Alguien sabe como hacer que una query sea modificable
Hola a tod@s.
Alguien sabria decirme que diferencia existe entre una Query (TQuery) modificable y una que no lo es. Os comento el porqué de mi pregunta: he creado una tquery con la siguiente consulta: "select * from tabla1 t1 join tabla2 t2 on t1.codigo=t2.cod_referencia". He puesto la propiedad Request Live a true pero dice que la Table is read only. Se que existe una propiedad llamada CanModify que te dice si permite o no modificar la Query, pero no me ayuda para poder corregirla. Espero que podais ayudarme. Saludos y muchas gracias a tod@s por colaborar. |
#2
|
||||
|
||||
Hola
La verdad no entiendo muy bien, para que modificar en una consulta la propiedad Request Live, dices que es un query y te dice que la tabla es read only. Sinceramente no lo entiendo. Otra sugerencia, el codigo delphi, colocalo con las etiquetas se entendera mejor. Saludos |
#3
|
|||
|
|||
A ver intento expresarme mejor....
Tengo un Tquery, un DataSource, y un formulario con un DbGrid. Lo que quiero hacer es poder modificar valores en el grid, pero me dice el siguiente mensaje de error "Table is read only". Pero no estoy utilizando un TTable estoy utilizando un TQuery. Me gustaría saber el porqué mi consulta no es modificable. No se si me entenderás ahora. Saludos y gracias por contestar. |
#4
|
||||
|
||||
Hola
Que base de datos usas? Saludos |
#5
|
|||
|
|||
Utilizo Firebird 1.5
|
#6
|
|||
|
|||
Tienes que utilizar un TUpdateSQL, lo ligas al Query y cambias la propiedad CachedUpdates a True.
En el TUpdateSQL, generas las sentencias SQL dando doble click y te mostrará una pantalla con un boton de Generate SQL, dale click y OK. Nos comentas que paso. Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#7
|
||||
|
||||
Hola
Me quedo un poco en ascuas, no entiendo el porque, pudiera ser que la base de datos tenga alguna restriccion. Has provado con otro componente como ado? Saludos |
#8
|
||||
|
||||
En el DataSet tienes que incluir correctamente las propiedades 'InsertSQL', 'ModifySQL', 'DeleteSQL' y 'RefreshSQL'.
Si lo que utilizas es un TIBQuery, lo tienes que relacionar con otro componente TIBUpdateSQL. Si en cambio utilizas un componente TIBDataSet puedes incluir las sentencias correspondientes a inserción, modificación, borrado y refresco en el mismo componente pulsando el botón derecho y eligiendo 'DataSet Editor'. Si precisas más información al respecto de como completar esas sentencias, busca en el foro, o simplemente expón de nuevo tus dudas al respecto. Saludos,
__________________
Piensa siempre en positivo ! |
#9
|
||||
|
||||
Vaya !!! Cuantas respuestas de golpe !
__________________
Piensa siempre en positivo ! |
#10
|
||||
|
||||
Bueno, pero varias muy buenas como la tuya y la de egostar.
Yo estoy como en las grandes ligas, dando batazos. Saludos |
#11
|
|||
|
|||
muchas gracias por preocuparos
|
#12
|
||||
|
||||
Caral, el problema es una query que incluye Inner joins... y eso será siempre de solo lectura, aquí no sirve la propiedad RequestLive ni CanModify.
Si no tuviese inner joins, y solo recopilara datos de una sola tabla, poniendo a True la propiedad RequestLive, ya podría insertar y modificar datos. Al tener inner joins, se debe hacer lo propuesto por guglu. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#13
|
|||
|
|||
A ver, parece que si que va a funcionar. Tan solo me queda saber como puedo hacer para que unicamente modifique.
En que evento le paso el valor del campo del grid que yo quiero al MODIFYSQL para que me modifique el valor de la query? Ah! por cierto utilizo TQuery ,TDataSet |
#14
|
|||
|
|||
Cita:
En todo caso lo que necesita solamente seria un TIBDataSet y omitir el TIBQuery, corrijanme si estoy mal. Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#15
|
|||
|
|||
Por lo general, el resultado de una consulta que implique mas de una tabla es siempre de solo lectura, independientemente de la base de datos, los componentes y de las propiedades que quieras ponerle. Si quieres que el resultado del query sea modificable (asociandolo a un grid, por ejemplo) has de usar una sola tabla o en su caso un view (y en este ultimo con restricciones).
|
#16
|
||||
|
||||
Como ya dijo avmm2004 el un query multitabla siempre es de solo lectura. No se puede modificar directamente, para poder hacerlo hay que crear los querys necesarios para cada caso (borrar, insertar y actulizar) como lo dice gluglu.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#17
|
||||
|
||||
Cita:
Para acceder a Firebird conozco estos compoentes: IBX(Interbase), MDOLIB y FIBPLus. Cualquiera es superior. Saludos
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#18
|
|||
|
|||
Finalmente he decidido poner un TTable, y ponerle campos LOOKUP.
Lo que no se si el rendiemiento del programa será el mismo. He añadido unos 6 campos LookUp. |
#19
|
||||
|
||||
Un TTable te va a bajar el rendimiento muchísimo. No se debería utilizar nunca en un entorno Cliente-Servidor.
Deberías utilizar siempre un Query (bien en form de TQuery o TDataSet). Aunque sea más fácil trabajar sobre un TTable.
__________________
Piensa siempre en positivo ! |
#20
|
|||
|
|||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
cxGrid, alguien sabe como? | sakuragi | Impresión | 0 | 12-08-2005 22:50:14 |
Alguien sabe como hacer que tu aplicacion se ejecute... | Supra | Varios | 7 | 05-02-2005 21:10:09 |
Alguien sabe como hacer un ShotDown a Firebird 1.51???? | AGAG4 | Conexión con bases de datos | 3 | 28-10-2004 18:02:21 |
¿alguien sabe hacer esto? (conexion a mySQL desde delphi pero sin acceso...) | seccion31 | Internet | 24 | 27-08-2004 17:14:23 |
|