WINSOCK / SQL / VB

Javi
20 de Febrero del 2003
Necesito hacer una consulta SQL a una base de datos ACCESS situada en otro equipo mediante el control WINSOCK. ¿Se puede hacer esto? ¿Cuál es la mejor forma de hacerlo?
Muchísimas Gracias

jolurola
20 de Febrero del 2003
El problema de esto, a mi ya me dió hace unos cuantos años, y es porque las dsn's de access no pueden pasar por un router, en su día lo solucioné usando SQL Server, ahora que se algo mas lo haría creando un componente en el servidor y que me retorne los datos usando ASP, si necesitas editar los datos con su integridad referecial y todo eso, lo que haría es montar todo el tinglado en XML que lo descargue el cliente lo edite y envíe al servidor todo el bloque de nuevo. Otra opción es hacerlo en java y metes la bbdd empaquetada en el jar, pero en todos estos casos, no creo que consigas abrir un cursor con bloqueos y todo eso, para eso te lo tendrás que currar con las propiedades de los campos en XML, pero si las tablas maestras son muy pesadas puede ser muy lento. Access no está pensado para esas historias, para eso existe el SQL Server, OAS e IAS de Oracle. Si eres un poco artista y tienes tiempo, te recomiendo que lo hagas con j2ee usando rmi, que es la última tendencia profesional para aplicaciones web

Iko
20 de Febrero del 2003
mas facil, conectas los dos equipos mediante un winsock, envias la sentencia sql que quieres hacer en formato de texto cadena.
el el otro ordenador recuperas esta consulta y la ejecutas obtienes unos resultados... ahora viene lo dificil, como bien han dicho te recomiendo el xml los resultados de la consulta en unrecordset los puedes pasar a xml enviarlos de nuevo al otro ordenador y desde alli gestionar el xml para obtener el resultado.
espero que queda mas o menos claro yo tengo un programa asi y me funciona de miedo :D

Ragayaga
20 de Febrero del 2003
Saludos Javi y todos los del foro, con relación a tu aplicación te pregunto ¿por qué no usas un servidor de bases de datos como MySQL?, es gratis y funciona perfecto en red. Te lo recomiendo, te ahorrará muchos problemas...

y si el problema es enviar un archivo a otra PC usando el Winsock Control, aquí encontrarás un ejemplo que creo pueda servirte.

http://lawebdelprogramador.com/codigo/mostrar.php?pagina=4&id=93&texto=Visual+Basic

stefen
20 de Febrero del 2003
No necesitas usar winsock ni nada, si tienes la base de datos en otro pc y este esta conectado al tuyo en red, simplemente cuando estas haciendo el programa le indicas la direccion de la base de dats y ya esta.
ejemplo:
supongamos que usas usas un data yla BD esta en el pc que se llama javi

data1.dtabasename="//javi/c:/ejempli.mdb"
data1.recordsource="select * from clientes"
data1.refresh


Es muy facil.
Saludos, Esteban

Javi
20 de Febrero del 2003
OOps! Me olvidé decir en la pregunta al foro que no estoy en una red local. Son dos equipos conectados a Internet por ADSL con IP fija.

Muchas Gracias Esteban. (Te he mandado un email poniéndote una breve descripción del proyecto que tengo que hacer)