FoxPro/Visual FoxPro - Error con una vista

   
Vista:

Error con una vista

Publicado por gaby (6 intervenciones) el 30/11/2010 18:36:31
Hola a todos en el foro.....
Tengo un problema con una vista que he creado, esta la necesito para llenar un reporte, pero es creada a partir de una vista y una tabla, la creo apartir de una vista porque de nos ser asi usaria muchas tablas que no estan relacionadas.

Cuando corro mi frame al dar clic en el boton que habre el reporte me marca el sig error
Alias 'nombre de mi vista' is not found, pero si me abre el reporte solo que no me filtra los datos.

espero alguien me pueda ayudar a resolver este problema o me puedan asesorar en porque me esta mostrando este error.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error con una vista

Publicado por xx (378 intervenciones) el 30/11/2010 19:12:47
Quizas se deba a que dicha tabla se cierra antes de la ejecución del reporte o quizas no este seleccionada antes de ejecutar el reporte (SELECT nombre de mi vista), o quizas el nombre de tu vista contenga un caracter especial, deberias dar mas datos!!

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por gaby (1 intervención) el 30/11/2010 19:40:12
XX gracias por respoder

En el evento clic del boton que habre el reporte hago el select a la vista con la que lleno los campos del reporte, inculuso si desde el diseñador hago un Browse a la vista abre bien con los datos que se supone debe mostrar.
y no el nombre de la vista no tiene caracteres especiales, incluso com ya mencione si abre el reporte pero primero envia ese error y cuanod doy clic en suspend para ver en que linea me marca el error, me marca en la linea donde hago el select de la vista.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por xx (378 intervenciones) el 30/11/2010 20:10:02
Es muy raro tu caso, supongo que trabajas con servidor SQL, no te deberia dar problemas, como no muestras el codigo vamos a divagar

La vista se crea como:
SQLEXEC( _xSQL, "SELECT * FROM TABLE", "NombreVista" )
luego creas un cursor sobre dicha vista
SELECT NombreVista.* FROM NombreVista INTO CURSOR XCURSOR WHERE xCond

Primero tienes que fijarte donde esta el error, comenta la sentencia REPORT FORM
poniendole un * delante y ve si se ejecuta sin problemas, si este es el caso entonces el
error esta en el reporte si no, te mostrara la sentencia que arroja el error en tu formulario.

Luego comenta como te fue
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por gaby (6 intervenciones) el 30/11/2010 21:10:22
Ya documente la linea que me mencionas y aun asi me sigue mostrando el error.
no me conecto con ningun servidor, mi base esta en fox, y la vista la he creado desde el Project Manager, el query que sea crea en la vista es el siguiente:

SELECT Petrografia.color, Petrografia.estructura, Petrografia.textura,;
Petrografia.certificado, Petrografia.origen, Petrografia.clasificacion,;
Petrografia.observaciones, Petrografia.micro_text,;
Petrografia.archivo_mue, Petrografia.ot, Petrografia.idecam,;
Vistadetalle.mineral, Vistadetalle.rang_per,;
Vistadetalle.pm_certificado, Vistadetalle.caracteristicas,;
Vistadetalle.size_max, Vistadetalle.size_min, Vistadetalle.percent,;
Vistadetalle.descripcion, Vistadetalle.forma, Vistadetalle.alteracion;
FROM mineragrafia!petrografia, mineragrafia!vistadetalle;
WHERE Vistadetalle.ot = Petrografia.ot;
AND Vistadetalle.idecam = Petrografia.idecam;
AND Vistadetalle.pm_certificado = Petrografia.certificado

En mi boton tengo esto
Select vistapetro **asi se llama mi vista y es aqui donde muestra el error alias 'vistapetro' not found
despues del select hago un filtro
Set Filter visat...................................
pero no lo guardo en un cursor, eso es necesario?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por xx (378 intervenciones) el 30/11/2010 23:11:51
Si usas tablas nativas del VFP entonces te falta la clausula into table o into cursor que es el que se encarga de asignar un nombre a la tabla de resultado o sea quedaria asi:

SELECT Petrografia.color, Petrografia.estructura, Petrografia.textura,;
Petrografia.certificado, Petrografia.origen, Petrografia.clasificacion,;
Petrografia.observaciones, Petrografia.micro_text,;
Petrografia.archivo_mue, Petrografia.ot, Petrografia.idecam,;
Vistadetalle.mineral, Vistadetalle.rang_per,;
Vistadetalle.pm_certificado, Vistadetalle.caracteristicas,;
Vistadetalle.size_max, Vistadetalle.size_min, Vistadetalle.percent,;
Vistadetalle.descripcion, Vistadetalle.forma, Vistadetalle.alteracion;
FROM mineragrafia!petrografia, mineragrafia!vistadetalle;
INTO CURSOR vistapetro;
WHERE Vistadetalle.ot = Petrografia.ot;
AND Vistadetalle.idecam = Petrografia.idecam;
AND Vistadetalle.pm_certificado = Petrografia.certificado

quizas por eso es que el alias vistapetro no te reconocia, puesto que si tu no ingresas dicha clausula se genera un alias CONSULTA1 dependiendo si tienes la version en español o ingles del VFP.

Prueba y comentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por xx (378 intervenciones) el 01/12/2010 13:38:13
PD: se me prendio la lamparita pocas veces sucede esto pero en fin, si la vista que creaste lo haces del generador de consultas y lo guardas debes definir el destino desde este, y lo usas como una tabla comun y corriente USE DB!vistapetro, si solo copias las sentencias como yo lo hago deberias incluir la clausula into que te mencione

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por gaby (6 intervenciones) el 01/12/2010 17:15:15
Hola
Ayer intente lo que me dijiste de agregar el into pero como ese query que te mostre se crea automaticamente al generar la vista no me permite editar el query, ademas ya he creado otras vistas igual con el designer y el codigo se crea de la misma maneray no tengo ese problema.

otra cosa si hago un USE db!vistapetro me dice que la tabla no existe, efectivamente no se guarada como una tabla incluso no se como se guarada porque si en mis carpetas de mi proyecto busco no hay una vistapetro ni las otras vistas que he creado pero al abrir el proyecto ahi estan todas.

sera acaso que la vista la crao apartir de otra vista y una tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por xx (378 intervenciones) el 01/12/2010 18:17:23
Bueno me explico mejor el problema esta en el nombre que llevara el resultado cuando tu editas la consulta mediante MODIFY QUERY nombrevista te abre el diseñador de consulta donde veras las tablas involucradas y demas especificaciones, si te fijas en la parte de arriba se agregara un item mas en el menu llamado QUERY/CONSULTA dependiendo la version que tengas dentro de este menu hay un item DESTINATION QUERY en la que se especifica donde ira el resultado por defecto esta en browse y debes elegir un CURSOR o TABLA de acuerdo a tus requerimientos, solo entonces podras accederlo como una tabla mas es decir con:
USE NOMBREBASEDEDATOS!nombrevista
una vez grabado revisa el codigo generado y ve si tiene la instruccion INTO dentro de tu seleccion.

Podrias copiar el codigo SQL generado e incrustarlo directamente en tu codigo.
o podrias cuando te da el error abres el depurador del VFP y en la ventana de comandos escribes SET y te mostrara todas las tablas abiertas incluyendo la consulta que deberia llevar un nombre raro como el que te mencione CONSULTA1 o QUERY1 o algo similar!

Espero lo resuelvas, podrias postear tu codigo si no te resulta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por gaby (6 intervenciones) el 01/12/2010 19:27:57
Mil mil Gracias
ya resolvimos ese problema.
pero tengo algunas dudas si con comando hago MODIFY query vistapetro me abre un siseñador pero sin tablas y tengo que agregar todo nuevamente los campos, el where todo, hay una opcion en el menu que es donde le doy el destino al query y veo el sql y si esta el insert into, pero si selecciono la vista y le doy clic en el boton modify igual me agrega el item al menu y ya si le doy clic ahi no me da la opcion de detino de query y si veo el sql ahi no esta el insert into.

bueno ahora el siguiente error si nadamas hago un select vistapetro
me marca el mismo error que antes y bueno hago USE y ya funciona pero cuando intento hacer un select de otra tabla me marca el mismo error me dice que no la encuentra,
acaso despues de use va otra instruccion o algo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por gaby (6 intervenciones) el 01/12/2010 21:00:57
Ya encontre cual es el problema.....
En el Data Eviroment del reporte debo poner las vista en modobuffer =3 y asi ya en el boton que abre el reporte ya no hago el use solo el select
y funciona todo correctamente.
Mil Mil gracias por toda tu ayuda..............
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con una vista

Publicado por wiillian (1 intervención) el 07/10/2012 03:42:34
hola! estoy haciendo un trabajo con el visual para terminar mi bachiller y yo tube un problema parecido, el tipico "alias ( ) is not found con este comando ok=SQLEXEC(conexion,'select * from tabla_inicio where usu_cod=1 and usu_clave=M.usu_clave','sql_pu') luego me di cuenta que me faltaba un simbolo, es este "?".. y me quedo asi ok=SQLEXEC(conexion,'select * from tabla_inicio where usu_cod=1 and usu_clave=?M.usu_clave','sql_pu') un dia y medio por un simple caracter jejeje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar