Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Necesito crear un permiso para escribir pero no para leer (https://www.clubdelphi.com/foros/showthread.php?t=33471)

federiconqn21 07-07-2006 16:29:16

Necesito crear un permiso para escribir pero no para leer
 
Hola a todos.Mi problema es el siguiente
tengo una base de datos Interbase,y hay una tabla en particular,a la que quiero crearle un permiso de escritura pero no de lectura.Concretamente es la tabla donde guardo el detalle de la recaudacion.entonces tengo empleados que tienen que escribir en ella,pero NO deben verla.Bien Lo que hice fue lo siguiente.
Código SQL [-]
GRANT INSERT ON MI_TABLA TO "USUARIO1"
donde USUARIO1 es el nombre de usuario al que le doy el permiso.
Ahora bien,mi problema se presenta cuando este usuario quiere escribir en la tabla MI_TABLA,pues previamente debe ejecutar la operacion
Código Delphi [-]
MI_TABLA.Open
y para ejecutar la operacion de Open,el usuario debe tener el permiso SELECT.Per Con este permiso tambien puede ver los datos de MI_TABLA
que puedo hacer?
agradecere a quien me pueda acesorar en esto,pues es lo que me falta para terminar mi aplicacion.
Salu2

nemesio 07-07-2006 17:59:04

Pero si lo haces en el sistema, puedes programar que cuando haga el Open, no se vea la información por pantalla. Ese open será como si no existiera para el usuario.

federiconqn21 07-07-2006 18:00:47

hola. y como haria eso?
gracias por tu respuesta

Lepe 07-07-2006 18:42:44

En realidad no tienes por qué usar un tabla.Open.

Puedes usar controles no data-aware, es decir, un simple Edit donde escribe las recaudaciones, despues en una consulta pones algo así:

Código Delphi [-]

query1.sql.Text := ' INSERT INTO MI_TABLA (CAMPO1, CAMPO2) '+ 
                           'VALUES (: pr1, : pr2);';
// pr1 significa "parametro 1" ;)
query1.paramsbyname('pr1').AsXXX := 'lo que sea';
query1.paramsbyname('pr2').AsXXX := 'lo que sea 2';
query1.ExecSql;

Saludos

aledieb 07-07-2006 18:56:15

Por que no usas la instrucción de insert con un query sin abrir la tabla:

Código Delphi [-]
query1.sql.add('Insert into tutabla (campo1,campo2, campo3)');
query1.sql.add('values (valor1, valor2, valor3)');
query1.ExecSQL;

nemesio 07-07-2006 19:13:47

A lo que me refiero es que si tu eres el programador, el programa lo conoces tu y si haces consultas o no, el usuario no se va a enterar. El usuario solo ve lo que tu mandas a mostrar por pantalla.


La franja horaria es GMT +2. Ahora son las 10:44:54.

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