Pregunta: | 44249 - CONECTAR CON POSTGRESQL |
Autor: | Mauricio Henao |
Hola a todos.
Alguie me puede indicar como hago para conectar con PostGreSQL 8 desde VFP? El PostGreSQL esta instalado en un servidor Linux, como hago para conectar? En mi windows me conecta bien, pero con el Host de Localhost. Espero puedan sacarme de este problema. |
Respuesta: | William Recinos |
tienes que editar el archivo postgres.conf y escribir:
listen_addresses = '*' en lugar del listen_addresses = 'localhost' luego verifica que exista una linea asi en el pg_hba.conf: host all all 192.168.1.0/24 trust 192.168.1.0/24 seria tu red que quieres permitir el uso de tus datos. reinicia el servidor de postgres y ahora has una prueba en la linea de comandos escribe: telnet 192.168.1.1 5432 tiene que contestar (192.168.1.1 si este fuese el servidor donde esta el postgres) trust no es recomendable en produccion, deberias de hacerlo con md5 si planeas que sea un servidor en produccion. para esto tienes que hacer algo asi cuando creas tu base de datos: createuser -s -E -P nombre_usuario createdb -O nombre_usuario -U nombre_usuario nombre_basedatos luego entra al psql y escribe: CREATE SCHEMA nombre_esquema AUTHORIZATION nombre_usuario; luego entra al pgAdmin y crea la conexion al servidor tiene que mostrarte en la parte izquierda tu esquema y las tablas que has creado. si es asi entonces solamente resta que hagas una prueba en la ventana de consultas haciendo un select a una tabla indicando el nombre del esquema antes del nombre de la tabla o puedes hacer esto: SET search_path TO nombre_esquema; SELECT * FROM nombre_tabla; el search_path es como que hicieras un SET DEFAULT TO nombre_ruta en tu VFP, entonces despues no necesitas estar escribiendo el nombre del esquema cada vez que necesites hacer un select, insert, update, delete, drop, create, etc. espero haberte ayudado, |
Respuesta: | Marco Caliri |
lo unico que hay que hacer es instalar los drivers ODBC de PostgreSQL y luego crear una conexion del tipo String especificando la dirección IP de tu Linux |
Respuesta: | William Recinos |
ya revisaste la configuracion del postgres.conf y del pg_hba?.. en el primero tienes que permitir el puerto para que sea visto en otras pcs a parte del linux... y en el pg_hba tienes que dar permisos a tu red local para conectarse al pgsql.. si no haces esto no podras verlo desde el pgAdmin...
tambien tienes que revisar los permisos a la base de datos que has creado en el postgres.. proba un GRANT ALL PRIVILEGES a ver si con esto se soluciona... saludos, |
Respuesta: | Marcelo Campra |
Si podes ejecutar varias instruciones desde vfp en la db postgres y lo que no podes hacer es un select, fijate si lo haces de esta manera:
sqlexec(handle,'select * from nombre_schema.socios','csocios') handle=controlador de conexion que te devuelve sqlconnect() select * from nombre_schema.socios=consulta csocios=nombre del cursor donde traes la consulta *tene en cuenta que en la consulta hay que indicar el NOMBRE DE SCHEMA PUNTO NOMBRE DE LA TABLA *Otra cosa que te puede estar sucediendo es, por lo ke vi en tu post que el nombre de schema debe ser si o si para trabajar con vfp "postgresql" sin las comillas asi se debe llamar tu schema, no me preguntes xke es solo un requerimineto de vfp al trabajar con postgres |
Respuesta: | Mauricio Henao Romero |
Ya no necesito eso.
Resulta que ahora quieren que se conecte con Windows. Ya hice el ODBC y la conexion: vCadConexion="driver={PostgreSQL};server=localhost;uid=xxxxx;pwd=xxxx;database=admin" vSqlConecta = sqlstringconnect(vCadConexion) if vSqlConecta <=0 Response.Redirect( Session.Url( "index.afp" )) else Response.Redirect( Session.Url( "hermes.afp" )) endif Esto lo hago desde AFP. PERO..... No se porque desde el PgAdmin no me deja consultar tablas. Hice un Schema llamado VFP, alli hay una tabla llamada TblPrueba, la cual tiene un campo NOMBRE. Desde el Sql hago: select * from tblprueba y me sale: ERROR: relation "tblprueba" does not exist Sabes que sera? Puedo crear tables, índices, y hacer muchas cosas, pero no he podido hacer un simple SELECT desde el PgAdmin. |