Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Modificar un Registro en un TMDOQuery (https://www.clubdelphi.com/foros/showthread.php?t=46015)

KAYO 20-07-2007 20:35:44

Modificar un Registro en un TMDOQuery
 
A veces es mas facil preguntar que indagar sobre alguna solucion, pero el tiempo apremia..... es por eso que se agradecen vuestros consejos....

En una Aplicacion Delphi7 con TMDOQuery intento editar un registro con la sentencia

DM.TMDOClientes.Edit;

pero me aparece el error "Cant not modify a Read-Only DataSet"..

Sabeis cual es el error.... me podeis orientar con alguna solución?

brakaman 20-07-2007 22:06:50

Cita:

Empezado por KAYO
A veces es mas facil preguntar que indagar sobre alguna

con TMDOQuery intento editar un registro con la sentencia

DM.TMDOClientes.Edit;

pero me aparece el error "Cant not modify a Read-Only DataSet"..

Sabeis cual es el error.... me podeis orientar con alguna solución?

Pues yo tambien utilizo mucho el foro....

El MDOQuery se utiliza para extraer datos de 2 tablas y para actulizar datos requiere de otro componente MDOUpdateSQL

Te copio de la ayuda de IBX que los MDO como sabes no tienen mucha ayuda (Demasiado hacen nuestros amigos portugueses sobre el asunto) pero son un clon de estos......

Use TIBQuery to access one or more tables in a database using SQL statements. The TIBQuery component provides a read-only dataset, and adapts well to the InterBase client/server environment. To update the result set that TIBQuery represents, use this component in conjunction with a TIBUpdateSQL component.

Si quieres actulizar solo una tabla lo mejor es el MDODataset

Yo soy novatillo, voy leyendo de aqui y de alla, pero la verdad que no tengo tiempo , ya me gustaria a mi. :D

En fin saludos a todos los foreros y gracias por la ayuda que siempre me prestan.

sitrico 23-07-2007 17:44:14

Yo solo uso MDOQuery pata TODO:

Sólo hay que crear el SQL correcto:

Código SQL [-]
Select * from xxx
para leer

Código SQL [-]
Insert into xxxx (campo) values (:parametro)
incluir

Código SQL [-]
Update xxx set campo = :Parametro
modificar

Código SQL [-]
delete from xxx where campo = :parametro
borrar

Código SQL [-]
execute procedure.....

Claro debes usar muchos where y manejar el SQL a consciencia.

Saludos.

brakaman 23-07-2007 21:36:58

Hola amigo:

Al decir que utilizas para todo MDOQuery+MDOUpdateSQL me ha surgido la duda de si era mejor tu opcion.

Dejando de lado que no discuto que es perfectamente valida, he preguntado en el foro oficial (Portugues) de los componentes y me han responido que para modificar datos es mejor MDODataset , y otro usuario ha ampliado las opciones MDODataset+TClientDataset .

Que como sabes se utiliza en modo desconectado y solo se envian los cambios al servidor cuando el programador quiere.

En fin , lo posteo por si a alguien le interesa.

Me gustaria hacer pruebas de rendimiento de las tres opciones , pero me haria falta una base de datos significativa., a ver si la consigo.

Saludos.

sitrico 30-07-2007 22:43:02

brakaman:

Dos cosas:

- Yo sólo uso TMDOQuery (y transacciones), porque antes usaba sólo tQuery :)

- También busqué en foros en portugues y ví lo del tMDODataset pero en realidad no logré implementarlo (pero es lo que recomiendan).


La franja horaria es GMT +2. Ahora son las 21:08:44.

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