FoxPro/Visual FoxPro - Error en consultas de PostgreSQL

   
Vista:

Error en consultas de PostgreSQL

Publicado por Juan Carlos (1 intervención) el 17/09/2007 17:59:05
Hola Amigos y muchas gracias por su tiempo

Tengo el siguiente problema:
- Tengo una base de datos en PostgreSQL instalada en un servidor Linux la version de la DB es la 8.2 ya he creado un base de datos DB099 y dentro de esta he creado un schema llamado DATA099 y dentro de el he creado varias tablas.

ya instale el ODBC y se conecta perfectamente.

El problema es desde fox y me conecto de la siguiente forma:
PUBLIC gnMyConect
gcSqlStr = "DRIVER={PostgreSQL ANSI};SERVER=x.x.x.x;Port=5432;DATABASE=DB099;UID=xxxx;PASSWORD=xxxx;"
STORE SQLSTRINGCONNECT(gcSqlStr) TO gnMyConect
IF gnMyConect > 0
MESSAGEBOX("Conexion exitosa")
SQLEXEC(gnMyConect,"SELECT * FROM ALUMNOS","MYCURSOR")
SELECT * FROM MYCURSOR INTO TABLE JUAN
ELSE
MESSAGEBOX("Error en Conexion")
ENDIF
SQLDISCONNECT(gnMyConect)

La conexion me dice que se realizo correctamente pero cuando hace el select me dice que no se encuentra la relacion ALUMNOS.

que estara pasando ?

de antemano muchas gracias.
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 en consultas de PostgreSQL

Publicado por Hector R. De los Santos (270 intervenciones) el 23/09/2007 06:32:48
Saludos...
Primero te hare unas recomendaciones:
a)Usa Text/EndText para realizar tus consultas SQL ya que soporta mas de 254 caracteres, asi no tendras que hacer concatenaciones cuando son consultas de muchos campos y clausuras.
Ejemplo:
Public lcSqlQuery
Texto to lcSqlQuery NOSHOW
Select campo1,campo2,my campo;
FROM esquema.tabla
Order by Mycampo
EndText

Ya solo debes mandar tu consulta asi
SQLEXEC(gnMyConect,lcSqlQuery,"MYCURSOR")

b)Usar Aerrors para mostrar los detalles de errores de conexion.

c)Antes de realizar la conexion establecer DISPLAY LOGIN a 0 para que no mueste la pantalla de LOGIN en caso de que el usuario deje los campos de usuario o clave en blanco.
Seria asi:
SQLSETPROP(0,"DispLogin",3)

d) Si quieres establecer un esquema por defecto,(PostgreSQL coloca el esquema PUBLIC por defecto) haz lo siquiente
SQLEXEC(gnMyConect, "SET search_path = tuesquema")

Creo que la solucion a tu problema esta en en las recomenaciones, y es que debes indicar el esquema en la consulta.

Suerte y sigue utilizando PostgreSQL es un exelente motor de base de datos, no te arrepentiras.
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