Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Modificar datos desde un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=55542)

metroyd 19-04-2008 05:37:37

Modificar datos desde un DBGrid
 
En un formulario de mi aplicacion hago dos consultas, las cuales visualizo en dos DBgrid. Las consultas las hago en un ADOQuery1 y ADOQuery2 respectivamente. Me podrian decir como puedo hacer para que estos dos DBGrid que estan visualizandose en un mismo formulario tengan la funcion de poder modificar su contenido y que sea guardado en la Base de datos??? Gracias, saludos

poliburro 19-04-2008 18:31:39

en las propiedades de cada DbGrid busca la opción Edit y ponla a True. Esto permitirá la edición y por consecuencia el registro de los cambios.

suerte

metroyd 19-04-2008 21:11:18

Cita:

Empezado por poliburro (Mensaje 281207)
en las propiedades de cada DbGrid busca la opción Edit y ponla a True. Esto permitirá la edición y por consecuencia el registro de los cambios.

suerte

Esta propiedad no aparece en los dbgrid, estoy usando delphi 6.

marcoszorrilla 19-04-2008 21:21:39

Para el caso que nos ocupa habría que tener en cuenta 3 cosas:

1.-La rejilla como te han indicado tiene una propiedad dgEditing que se encuentra dentro de Options, por lo tanto tienes que desplegar Options para llegar a esta propiedad, aunque está activada por defecto, por lo que pienso que no sea este el problema.

2.-La rejilla en su conjunto tiene otra propiedad llamada ReadOnly, como su nombre indica si está activada sería imposible modificar cualquier columna.

3.-Cada columna de la rejilla tiene también una propiedad ReadOnly, por lo que si alguna columna tiene está propiedad actividad no podría modificarse.

Finalmente y cuarto caso, depende de la consulta en sí, no todas las consultas permiten la actualización.
Código Delphi [-]
if ADOTable1.CanModify then
  ADOTable1.Edit
else
  ShowMessage('Recordset is read-only!');

Un Saludo.

metroyd 19-04-2008 23:25:13

Bueno, no se si mi consulta permita modificacion. De hecho, en un dbgrid visualizo esta consulta:
Select * from tabla

y en el segundo visualizo esta:
Select * from tabla2 where Condicion

El caso es que en el primero si puedo modificar. Tal vez no puedo modificar el segundo por tratarse de la consulta.

Caral 20-04-2008 03:13:05

Hola
Todo es modificable siempre y cuando se tomen en cuenta los campos clave.
En las dos consultas que as presentado se pueden modificar la tabla.
Recuerda una cosa:
El dbfrid es es solo un depositario de la informacion.
Osea lo que tiene que atacar es el conector en este caso (adoquery1 y 2).
Toda tabla que tenga el campo clave es modificable.
Solo tienes que editar la tabla.
si quieres hacerlo facilmente usa un dbnavidator, si no, con un boton edita la tabla.
Código Delphi [-]
Adoquery1.edit; // adoquery 1 o 2 es lo mismo en tu caso
Luego de hacer los cambios los formalizas.
Código Delphi [-]
Adoquery1.post;
Asi de facil.
Salñudos
PD: si tengo algun error disculpa, he tomado unos vinitos (es viernes):D

metroyd 20-04-2008 03:20:11

Cita:

Empezado por Caral (Mensaje 281232)
Hola
Todo es modificable siempre y cuando se tomen en cuenta los campos clave.
En las dos consultas que as presentado se pueden modificar la tabla.
Recuerda una cosa:
El dbfrid es es solo un depositario de la informacion.
Osea lo que tiene que atacar es el conector en este caso (adoquery1 y 2).
Toda tabla que tenga el campo clave es modificable.
Solo tienes que editar la tabla.
si quieres hacerlo facilmente usa un dbnavidator, si no, con un boton edita la tabla.
Código Delphi [-]Adoquery1.edit; // adoquery 1 o 2 es lo mismo en tu caso

Luego de hacer los cambios los formalizas.
Código Delphi [-]Adoquery1.post;

Asi de facil.
Salñudos
PD: si tengo algun error disculpa, he tomado unos vinitos (es viernes):D

Hola, entonces el primer codigo lo meto en un boton, y el segundo codigo despues de esto? pero, y el grid???
o lo que me pretendes decir, es que haga los cambios en el grid y despues de clic en el boton con el codigo que me diste?

Gracias, y pues SALUD!!!;)

Caral 20-04-2008 03:21:34

hola
:D:Dhoy sabado:D:D
saludos

JoseFco 20-04-2008 03:29:30

Cita:

Empezado por Caral (Mensaje 281234)
hola
:D:Dhoy sabado:D:D
saludos

jajajajajaja Si que esta bueno el vino.:D:D:D

Un Saludo.

Caral 20-04-2008 03:31:29

Hola
Vamos a ver si me hago entender.
El dbgrid es solo como una pagina en dode muestro lo que necesito, osea, no hace nada.
lo que tiene que hacer es atacar al conector, ado.
ejemplo.
coloco un adoquery en el form
lo conecto a la tabal con una sentencia sql.
Código Delphi [-]
Adoquery1.sql.text:= 'select * from mitabla';// me conecto
Adoquery1.open;// la abro
entonces coloco un dbgrid en el from.
para conectarlo con el adoquery necesito un datasource, pues lo pongo.
ahora cuando ejecuto se vera el contennido en el dbgrid.
bueno quiero modificarlo.
pues como dije, pongo un dbnavigator o un boton.
si pongo un dbnaviagtor simplemente lo ligo al datasource.
si pongo un boton,. pongo este codigo.
Código Delphi [-]
adoquery1.EDIT;
y luego con un post lo guardo.
simplemente, sin modificar nada en el dbgrid ni nada.
NO HAY QUE HACER NADA EZTRAORDINARIO.
Saludos

metroyd 20-04-2008 03:41:41

Cita:

Empezado por Caral (Mensaje 281236)
NO HAY QUE HACER NADA EZTRAORDINARIO.
Saludos

Excelente, voy a probar ahora mismo, Gracias!!!!!

Caral 20-04-2008 03:43:16

Hola
Vamos Jose, que un dia es un dia
Saludos

Caral 20-04-2008 03:47:08

Hola
Que base de datos enlazas???.
Saludos

JoseFco 20-04-2008 03:49:20

Cita:

Empezado por Caral (Mensaje 281238)
Hola
Vamos Jose, que un dia es un dia
Saludos

Eso es verdad maestro. Salud!!

metroyd 20-04-2008 03:51:35

Cita:

Empezado por Caral (Mensaje 281239)
Hola
Que base de datos enlazas???.
Saludos

MySQL, utilizando el ADOConnection

Caral 20-04-2008 03:54:37

Hola
Hace dias que solo entro al club, veo un poco y me salgo.
Tengo mucho trabajo, hoy estoy descansando, despues de que no he podido poner a punto mi moto, asi que me he tomado unos vinitos para olvidarme de todo.:D:D
Mañana si tengo ganas volvere a intentarlo.:D:o
Ya vere.
Me alegro saludate, espero que tu mundo de los micro, valla bien.
saludos

Caral 20-04-2008 03:55:51

Hola
BUsca Zeos, es mejor que ado para eso.
Ado, se vuelve lento con tablas grandes.
Saludos

metroyd 20-04-2008 03:58:48

Bueno, creo que me quedaré con el DBNavigator, en fin, muchas gracias!!!!!

Caral 20-04-2008 04:03:05

Hola
No le tengas miedo a delphi, es sencillisimo, es solo usar la logica.
el dbnavidator es un buena obcion, sencilla.
pero haz la prueba con un boton, en el evento on clikc, po el codigo que puse, es lo mismo.
Mysql, es una buen base de datos, tambien puedes probar con firebir.
Saludos

metroyd 20-04-2008 04:10:14

Cita:

Empezado por Caral (Mensaje 281247)
Hola
No le tengas miedo a delphi, es sencillisimo, es solo usar la logica.
el dbnavidator es un buena obcion, sencilla.
pero haz la prueba con un boton, en el evento on clikc, po el codigo que puse, es lo mismo.
Mysql, es una buen base de datos, tambien puedes probar con firebir.
Saludos

claro, lo haré, probaré con el boton. Gracias nuevamente :)


La franja horaria es GMT +2. Ahora son las 05:33:40.

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