Vistas locales multiusuario

Buenos dias,en un ambiente de red, donde los datos reciden en un servidor
cree una forma creando una vista local de una tabla pero condicionada por un parámetro que escoge cada usuario al ingresar al aplicativo: CREATE SQL view <VISTA> AS SELECT * FROM <TABLA> WHERE TABLA.CAMPO=x_parametro
Donde x_parametro es diferente por usuario,
Luego abro la vista Shared,
El problema es que otro usuario al ingresar y querer crear su vista con otro parámetro aparece el error "access denied"
¿Cómo se puede manejar para que cada usuario cree su vista de acuerdo al parámetro que ingrese? ¿Y actualizar la tabla del servidor de acuerdo a las modificaciones hechas en la vista de cada usuario?
Agradezco la pronta ayuda,

1 Respuesta

Respuesta
1
Disculpa que sea un tanto duro en mi opinión, respecto de la técnica con la que estas manipulando la tecnología de Vistas. Pero debo decirte que así no debes de trabajar, creando la vista ha cada instante. Si haces esto, corres el riesgo de dañar tu archivo DBC. Pues tendrías que utilizar el comando PACK(), para compactar tu BD cada vez que un usuario la cree o la borre.
Haz lo siguiente, define una vista una sola vez, y prepararla para que sea utilizada por varios usuarios sin ningún conflicto de la siguiente manera:
1.Usa el diseñador de vistas, para crearla. Agregale el párametro, de filtro de tus datos. Por ejemplo que se llame "mifiltro".
2. En el entorno de datos de tu formulario, selecciona agregar cursor, y agrega la vista
3. En la ventana de propiedades del cursor recién agregado (de tu vista), cambia la propiedad . NODATAONLOAD por defecto. Este paso es muy importante, pues esto impedirá que cada vez que abras la vista salga el imputbox, preguntando por el parámetro que le haz asignado a tu vista. De este modo la vista se abre y se carga en memoria pero sin datos.
4. Ahora debes de definir el tipo de almacenamietno en buffer de la vista, por default, esta propiedad(bufferoverride) es 3, pero para evitar conflictos con otros usuarios colócale 5 desde la ventana propiedades.
5. A partir de ahora lo único que tienes que hacer es cargar los datos de tu vista, llmando al parámetro de la siguiente, manera
Por ejemplo ene el formulario, colocas un textbox, que reciba el valor por el cual quieres filtrar.
miparametro=thisform.text1.value
SELECT mivista
Requery()
... y listo veras como la vista carga los datos filtrados
6. Para guardar los cambios en disco, utiliza la función TABLEUPDATE(.T.,.T.)
OJO ... Para asegurar que las actualizaciones se envían a disco, verifica que la propiedad SENDUPDATES, de la vista este activado. Esto lo puedes revisar desde el diseñador de vistas.
Ya sabes si esto no te resulta o si no fui claro por favor no cierres la pregunta, solo escríbeme nuevamente si.
Mucha suerte amigo, no olvides que las vistas son lo mejor y lo ultimo en VFP.
UPs, olvide aclarar algo.. En el entorno de datos de tu formulario please coloca la propiedad "autoopentables" en verdadero.
Por unlamentable error, he borraod tu mensaje de correo, por considerarlo como correo no deseado, por favor, envialo nuevamente, pero en el asunto coloca TODOEXPERTOS VISTAS, para darme cuenta. ¿Ya sabes que estoy dispuestoi a ayudarte eh?
No olvides de contarme como te fue
Buenos días, ¿no te llegó el mail donde te comentaba como me fue y el problema que tenía?
Ese mismo día hice la prueba y me surgieron unas inquietudes que te envíe, por favor verifica, no puedo culminar la pregunta con esas otras aclaraciones pendientes,
Como te cuento hasta ahora estoy incursionando en las vistas ten un poco de paciencia y agradezco tus respuestas a esas otras inquietudes,
Gracias,
Buenas tardes, ¿hipogea recibiste mi mail o no te están llegando? Te lo envíe con asunto todoexpertos.
Gracias,
oK. Te lo envíe a esa dirección.
Gracias,
Debe haber un problema con mi cuenta de correo, por favor toma nota de mi otra dirección : [email protected]
Me gustaría sabes que te parecido la respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas