Conectar a BD Visual Fox, mediante ASP

Recibe un cordial saludo ^_^.
Me encuentro ante un problema, el cual es muy extraño, resulta que en la PC donde esta alojado el sitio web (servidor Web), tengo "mapeada" una carpeta que esta alojada en otro servidor de datos(servidor Datos), en el servidor web, la carpeta toma la unidad E:\, el problema viene cuando desde ASP, quiero conectarme a la Base de Datos para realizar consultas.
Me aparece el siguiente error:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Visual FoxPro Driver]Cannot open file e:\remesas\datos\bodega.dbc.
/recibida.asp, line 86
Cabe destacar que la carpeta "e:\remesas\datos\bodega.dbc" existe, tengo que hacer algo especial para que me conecte a la base de datosd que esta alojada en otro servidor, o forzosamente, tengo que pasar la base de datos a la carpeta wwwroot.
Anexo codigo, paqra ver si encuentras algo que este haciendo mal.
Dim oConn, Rs, SQL
Dim nombre
set oConn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.RecordSet")
oConn.Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDb=e:\remesas\datos\bodega.dbc"
Rs.Open "SELECT * FROM s_cobos WHERE Ge_numcli='"&numcli&"' and Fechaent>=Ctod('"& feci &"') and Fechaent<=Ctod('"& fecf &"') ORDER BY Fechaent",oConn
2

2 respuestas

Respuesta
1
Probemos ya lo ultimo, traslada la base de datos al servidor web, por lo menos vamos a ver si podemos ver los datos desde la página ASP, después iremos variando, la ubicación de la Base de Datos.
Prueba primero con tu cadena de conexión original, después prueba con la DSN. Y si, la verdad que me equivoque, no sale el DSN creado en el DSN del sistema sino el de usuario.
Cuéntame en cuanto lo pruebes, porque ademas a partir del miércoles estaré fuera una semana y me gustaría que por lo menos te funcionara de alguna manera.
Probare lo que me mencionas, Gracias!
Como estaré no disponible durante una semana al menos..., si al final tiens que optar por dejar la BD en el servidor web, para poder actualizarla, supongo que Visual fox tendrá algo parecido a lo que tine SQL Server, que son las transacciones o DTS que puedes programas toricamente. No se si las conoces pero consiste en que tu de una base de datos defines que tablas, vistas y procedimientos almacenados quieres que se ejecuten periódicamente (1 día, 1 hora, 1 minuto) o incluso en tiempo real de tal forma que puedes enviar los datos actualizados desde la base de datos del servidor de datos al Web.
Creo que Visual Fox tiene que tener algo parecido, yo monte hace un año algo así para SQL Server y funciona perfectamente. Prueba a investigar
Gracias por tu valiosa ayuda, ahora mismo probare lo de ver los datos desde mi página ASP:
Los puse de esta manera, dentro de la carpeta wwwroot:
set oConn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.RecordSet")
oConn.Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDb=\datos\bodega.dbc"
y de esta otra
set oConn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.RecordSet")
oConn.Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDb=datos\bodega.dbc"
Y en las dos no las encontró.
Me mostro este error:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Visual FoxPro Driver]Cannot open file \datos\bodega.dbc.
/recibida.asp, line 86
lo he puesto de la siguiente manera
set oConn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.RecordSet")
oConn.Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDb=c:\datos\bodega.dbc"
'oConn.Open "DSN=Conexion"
Rs.Open "SELECT * FROM s_cobos WHERE Ge_numcli='"&numcli&"' and Fechaent>=Ctod('"& feci &"') and Fechaent<=Ctod('"& fecf &"') ORDER BY Fechaent",oConn
Y me ha funcionado, pero la base de datos, no se actualiza, pues la tabla se actualiza en el servidor de datos, no en el servidor web.
Gracias de nuevo.
Gracias, al final, tendré que hacer lo que menciona, tu ayuda ha sido invaluable para lograr lo que deseo. Cualquier duda, te estaré molestando de nuevo, je je.
Saludos!
Ideas de ultima hora:
- prueba a poner la cadena de conexión en vez de \\nombre_servidor_datos\remesas\datos\bodega.dbc (cuando uintentabamos yamarla desde el servidor web al de datos)
por:
\\IP_servidor_datos\remesas\datos\bodega.dbc
or ejemplo si la ip dentro de la inrranet es 192.168.0.1 pues
\\192.168.0.1 \remesas\datos\bodega.dbc
También se me ocurre crear como DSN del sistema una DSN pero en el servidor de datos y ver si desde el servidor web dentro de la pestaña de DSN del sistema aparece entonces llamalo tal como lo llamaste.
No se, cuéntame.
Bueno yo no mapearia la carpeta en tu servidor web sino que a la hora de llamar a la bd pondria \\nombre_servidor_datos\remesas\datos\bodega.dbc y compartiria la carpeta remesas. Yo creo que esto debería funcionarte.
Si no, otra opción es que accedas mediante DSN creando una conexión directa a la base de datos que esta en el servidor de datos y además así puedes probar la conexión.
Y bueno como tu dices la ultima opción seria traerte la base de datos al servidor web, PERO, y esto es muy importante incluyela en otra carpeta distinta y fuera de wwwroot y de alguna de sus subcarpetas. Aunque esta opción siempre es la menos recomendable por problemas de seguridad aunque con una buena protección de seguridad sería una solución.
Gracias por tu ayuda.
He puesto el siguiente código:
Dim oConn, Rs, SQL
Dim nombre
set oConn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.RecordSet")
oConn.Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDb=\\Servidor\Vo1\Remesas\datos\bodega.dbc"
Rs.Open "SELECT * FROM s_cobos WHERE Ge_numcli='"&numcli&"' and Fechaent>=Ctod('"& feci &"') and Fechaent<=Ctod('"& fecf &"') ORDER BY Fechaent",oConn
if rs.EOF then
Response.Write("No hay ningún registro en esta tabla")
end if
%>
Pero me muestra un error bastante similar
Technical Information (for support personnel)
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Visual FoxPro Driver]Cannot open file \\servidor\vo1\remesas\datos\bodega.dbc.
/recibida.asp, line 86
Si con este método no se puede, ¿me podrías explicart como hacerlo por DSN?, de ante mano, gracias por tu ayuda.
Si has compartido la carpeta remesas no deberias poner esto : \\servidor\vo1\remesas\datos\bodega.dbc.
creo que deberias poner esto mejor, no?: \\servidor\remesas\datos\bodega.dbc.
De todas formas para la DSN haces lo siguiente (supongo que estas en win 2000) Te vas a Panel de control/Herramientas administrativas/Origenes de datos (ODBC), te saldrá un cuadro dde dialogo con varias pestañas dale a DSN de usuario y en Orígenes de datos de usuario, busca Visual Foxpro Database, márcalo y dale al botón Agregar. Volverá am salirte otra ventana para que escojas el driver, escoge Microsoft Visual FoxPro Driver y botón finalizar. Y te volverá a salir otra ventana donde deberás el nombre para el origen de datos (el que tu quieras) e indicar la ruta donde esta la BD dándole al botón Examinar.
Después, si todo va bien vuelve a entrar en orígenes de datos (ODBC) y en la 2º pestaña de DSN del sistema debe aparecer tu conexión. Si pulsas sobre ella dos veces te abrirá una ventana y supongo que abra algún botón de test o pruebna para probar la conexión.
Además en tu página deberal cambiar esto:
oConn.Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDb=\\Servidor\Vo1\Remesas\datos\bodega.dbc"
oConn.Open "DSN=nombre_de_tu_conexion"
Veamos que pasa y suerte.
Respuesta
1
Si te pasa ese error es pº no habrás escrito bien mayúsculas o minúsculas, la ruta no tiene permiso de lectura, no existe o los driver no apuntan bien.
***** PUBLICIDAD *****
Visita www.misubasta.net y gana por el registro 10 euros
**********************

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas