PDA

Ver la Versión Completa : consulta con un dbgrid


Renees
28-09-2006, 18:16:56
buenas tardes a todos, mi cosnsulta es la sigueinte:

Como puedo hacer para bloquear mi dbgrid para que permita adiccionar registro, pero que permita modificar. Utilizo interbase y componentes TIBdataset.

Una consultita mas, necesito tenes dentro del dbgrid un CheckBox1 se puede, desde ya muchisimas gracias.

jachguate
28-09-2006, 18:44:42
Buenos días desde el otro lado del charco.. :D

El "bloqueo" para no permitir modificar no lo haces a nivel del grid, que es un simple contenedor de los datos.

Podes en el evento BeforeEdit del IBDataSet que mencionas, poner el siguiente código:


begin
Abort;
end;


Ahora será imposible modificar uno de los registros ya ingresados.

Hasta luego.

;)

roman
28-09-2006, 20:24:14
No estoy muy de acuerdo. El DBGrid, si bien, como dices, no es más que un contenedor de datos (más bien un visor, contenedor sería el dataset), tampoco es que sea inválido. El DBGrid tiene su propiedad ReadOnly que sirve para impedir cualquier clase de edición (supresión, inserción o modificación de registros) desde el grid. Ademas, cada columna del grid también tiene su propiedad ReadOnly que nos permite impedir la edición del campo correspondiente.

Estas opciones podrían ser más convenientes- según sea el caso -porque el método del BeforeEdit evitaría cualquier tipo de edición, aún desde código, y quizá sólo se desea que el usuario no edite.

Por otro lado, yo he entendido que lo que se quiere es poder editar pero no agregar. En tal caso sería más adecuado abortar el BeforeInsert.

// Saludos

jachguate
28-09-2006, 20:35:54
no es más que un contenedor de datos (más bien un visor, contenedor sería el dataset)
¡Llevas toda la razón!
Por otro lado, yo he entendido que lo que se quiere es poder editar pero no agregar. En tal caso sería más adecuado abortar el BeforeInsert.

Yo entendí lo contrario, que se quiere permitir insertar pero no modificar. Ahora que lo veo detenidamente, Renees no dice ni una cosa ni la otra... mas bien todo lo contrario... :confused: :confused: :D :D :D :D
para que permita adiccionar registro, pero que permita modificar.

Hasta luego.

;)

roman
28-09-2006, 20:41:08
Sí, es un poco enredada la redacción, pero olvidaste parte de la frase:


bloquear mi dbgrid para que permita adiccionar registro, pero que permita modificar


es decir, bloquear eso: permitir adicionar registro. Si se bloquea un permiso, ¿no es lo mismo que denegar?

:D

En fin, ya Renees nos dirá.

// Saludos

Caral
28-09-2006, 20:56:53
Hola
Renees entiendo esto:

que permita adiccionar registro, que permita modificar.

Para esto lo mas simple es poner un componente DBNavigator que tiene todas las funciones, insertar, borrar, modificar etc., este lo conectas con el Datasource del DBgrid y Ya.
Con respecto al CHeckBox, este lo puedes poner fuera e ira siguiendo los registros segun el dbGrid, asi no necesitas nadamas que uno.
Si no es esto, por favor explicate mejor, puesto que la pregunta esta a mi parecer mal planteada.
Saludos a los Maestros Jachguate y Roman
Saludos

Renees
28-09-2006, 23:35:57
Todos tiene razon quedo mal formulada la pregunta porque me comi una palabra.

Como puedo hacer para bloquear mi dbgrid para que NO permita adiccionar registro, pero que permita modificar. Utilizo interbase y componentes TIBdataset.


Mil discupla agradesco por la mal redaccion.

Caral
28-09-2006, 23:43:29
Hola Renees
El NO era importante.
Con respecto al DBgrid, Este ve solo lo que hay en la tabla, si no esta unido a un dbnavigator o a algun codigo que indique lo contrario, el dbgrid solo vera repito lo que esta en la tabla, no se podra insertar o ADICIONAR registros en el, pero si se podran MODIFICAR los mismos.
Mi duda es por que o como puedes insertar o ADICIONAR registros sin estas premisas anteriores.?
Puesto que lo que pides ya lo hace sin mas el dbgrid.
Saludos