FoxPro/Visual FoxPro - Problemas conexion con base de datos

 
Vista:
Imágen de perfil de Yogui

Problemas conexion con base de datos

Publicado por Yogui (79 intervenciones) el 30/04/2014 17:59:04
¡Hola!
Tengo una consulta, ya hice la conexíón con la base de datos desde el foxpro, con el comando "SQLCONNECT( )" pero luego al tratar de acceder a otra tabla, no la encuentra, me abre el explorador para buscar la base de datos.

Esto es lo que tengo:

cnx= sqlCONNECT('MIBD', 'miusser', 'mipass')
consul="select * from tabla_pass" *es mi tabla de passwords para corroborar lo anterior
sqlexec(cnx,consul,"XYZ") &&nombre de la nueva tabla
brow

Ahi me valida la conexión y en esa consulta veo los demás registros, pero el problema me surge cuando quiero acceder a otra tabla, yo asumo que una vez establecida la conexión, puedo seguir usando mi variable "cnx" y hago lo siguiente:

consul2= "select * from tabla_pagos"
sqlexec(cnx,consul2,"ABC")

Y me sigue mostrando la tabla de passwords en lugar de mostrarme la que quiero :S

Espero me puedan ayudar :)
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
sin imagen de perfil

Problemas conexion con base de datos

Publicado por neo (1604 intervenciones) el 30/04/2014 23:48:13
debes omitir exactamente donde llamas a la bd. e intentar solo con "sqlexec()"

Mas tarde busco la cadena de conexion y llamadas a motor de bas de datos, para darte un ejemplo mas simplificado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Yogui

Problemas conexion con base de datos

Publicado por Yogui (79 intervenciones) el 02/05/2014 16:47:35
Hola :) Gracias, especificándo mejor mi problema, es el siguiente, yo hago la conexión a la base de datos, esta se efectúa bien, pero luego una vez que ya estoy conectada, lo que quiero es introducir más consultas, entonces opté por colocar dentro de otra sentencia sqlexec, pero al hacerlo, como comentaba, me sigue saliendo la tabla de passwords.
Pero omitiendo eso, ya quité esa consulta, ahora simplemente establezco la conexión de la siguiente manera:
cnx= sqlCONNECT('MIBD', 'miusser', 'mipass')

Lo demás lo borré, es decir, solo estoy conectando, pero ahora a partir de esa conxión quiero hacer más consultas, y que son más complejas aún, no tienen una sola linea, y no sabría como almacenarla en una variable para sqlexec o hacerlo de otra manera, soy nueva en foxpro ;___;
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
sin imagen de perfil

Problemas conexion con base de datos

Publicado por neo (1604 intervenciones) el 03/05/2014 03:29:36
Mmm no, mira lo que debes hace para trabajar con motor de base de datos, es:

algo asi como ejemplo:

En un prg inicial agrega la cadena de conexion (Ejemplo para MySQL):

&&Server
PUBLIC lcServer, lcDatabase, lcUser, lcPassword
lcServer="localhost"
lcDatabase="mi_basededatos"
lcUser = "admin"
lcPassword = "1234"

lcStringConn="Driver={MySQL ODBC 5.1 Driver};Port3306"+;
";Server="+lcServer+;
";Database="+lcDatabase+;
";Uid="+lcUser+;
";Pwd="+lcPassWord
SQLSETPROP(0,"DispLogin",3)
lHandle=SQLSTRINGCONNECT(lcStringConn) &&& ERROR &&&

IF LHANDLE>0
WAIT WINDOW "Conectando al Servidor..." TIMEOUT 1
WAIT WINDOW "Conexión exitosa al Servidor" TIMEOUT .8
SQLDISCONNECT(0)
ELSE
WAIT WINDOW "Error de conexion al Servidor" TIMEOUT .8
DO salir.prg
ENDIF

*------------------------------------------------------

ahora bien, esto es solo para tener una conexion al servidor. el siguiente codigo es el que utilizo para abrir una tabla:

***Tomando en cuenta que la conexion es "lHandle"

SQLEXEC(lHandle,"use mi_tabla")
SQLEXEC(lHandle,"select campo1, campo2 from mi_tabla where id="+STR(thisform.t1.Value),"cCursor")
select cCursor
brow


*****Fin

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