PDA

Ver la Versión Completa : Conectar Base de Datos con Sockect


Caral
07-09-2006, 17:13:45
Hola a todos
Sigo pensando en esto y pues no llego, a ver si se les ocurre algo, o si por el contrario suena tonto.:rolleyes:
Consideracion: Casi todos conocemos como conectarnos a bases de datos con ADOConection.o con Zeos, es muy simple y sin problemas. ahora bien se me ocurre lo siguiente::D
Pregunta: Se puede conectar de forma similar con una base de datos por medio de los componentes (clientesocket y serversocket).
Se como conectar uno con otro por medio de IP y Puerto, se conectan bien pero no se como pedirle al serverSocket que me enseñe la base de datos como lo hace el tipico AdoConection o algo asi.:confused:
Bueno club a ver si se les ocurre algo y salgo de esto de una vez por todas.:)
Saludos

jachguate
07-09-2006, 17:36:21
¿Reinventar la rueda?

En muchas de las bases de datos que conocemos, la parte cliente instalada en el equipo establecerán comunicación via sockets con su contraparte servidora, atendiendo un protocolo que permite que se comuniquen y que la magia fucione.

Allí tenemos al cliente de firebird (fbclient.dll) o al de interbase (gds32.dll) que soportan el protocolo TCP/IP toda la maquinaria de oracle, que también soporta TCP/IP.

AdoConnection, Zeos o cualquier otra capa de acceso a datos se apoya en estos clientes, atacando sus API's, cosa que puede resultar extremadamente complicada para el programador de aplicaciones comun, como yo.

Hasta luego.

;)

Caral
07-09-2006, 17:49:53
Me parece muy puntual pero::)
Sigo con la duda.:confused: un simple no se puede o estas loco me sentaria mejor.
Hablar de Dll suena bien pero no concreta, ya que mi conocimiento de estas es minimo.
Tal vez una explicacion mas cerca de la tierra la podria entender mejor.
Saludos

jachguate
07-09-2006, 17:54:23
Me parece muy puntual pero::)
Sigo con la duda.:confused: un simple no se puede o estas loco me sentaria mejor.
Hablar de Dll suena bien pero no concreta, ya que mi conocimiento de estas es minimo.
Tal vez una explicacion mas cerca de la tierra la podria entender mejor.
Saludos

Si se puede (todo se puede). La pregunta para mi es ¿tiene sentido?. ¿por que no hacer windows de nuevo? ¿o linux?

Si hablar de una DLL ya te parece complicado... ni hablar de hacer la ingeniería inversa e implementar el protocolo de comunicación de Oracle.. :D

Saludos.

;)

Caral
07-09-2006, 18:03:14
Sigo insistiendo, por que no:
Por que no hacer windows o linux de nuevo, por que no es que hasta aqui llegamos, la tecnologia paro, apaguen las maquinas.
La pregunta creo es puntual y por mas tonta que parezca la pregunta mas tonta es la que no se hace.
Sigo con la duda.
Saludos

jachguate
07-09-2006, 18:10:02
quizas no he entendido tu duda original.

si es: ¿Se puede conectar a un servidor de base de datos mediante tcp/ip?, la respuesta es: Si se puede.

Si la pregunta es ¿que debo hacer para conectarme a un servidor de base de datos mediante tcp/ip y lanzar un query?
La respuesta es: Debes establecer una conexión por sockets al puerto del servidor en donde escucha la BD y ejecutar la secuencia de transmisiones que el protocolo de dicha base de datos manda para realizar los diferentes pasos de una conexión a la bd)

Si la pregunta es: ¿Puedo hacer esto desde delphi?
la respuesta es: ¡Claro que si!

Si la pregunta es: ¿como pedirle al serversocket que me enseñe la base de datos cmo lo hace el típico AdoConnection?
La respuesta es: No se lo que eso significa, pues un AdoConnection no "enseña la base de datos" de ninguna forma.

Hasta luego.

;)

Caral
07-09-2006, 18:22:50
Gracias Jachguate ahora si me entiendes vamos bien:) :)
Si me indicas que puedo conectarme con la base de datos por medio de tcp/ip,
Pregunta: Crees que me puedo conectar a una base de datos access con esto. y si es asi que componente usar y como.:confused:
Uso Delphi 6:)
Con respecto al ado tienes razon, este simplemente me conecta, la tabla la veo desde el adotable u query. (me explique mal lo siento).
Saludos

jachguate
07-09-2006, 19:18:38
Pregunta: Crees que me puedo conectar a una base de datos access con esto. y si es asi que componente usar y como.:confused:
Access no es una base cliente servidor, por lo que no hay un servidor del otro lado al cual conectarse. Desconozco como lo hará el "jet" de m$, pero supongo que será una apertura compartida del archivo con manejo de bloqueos, al estilo de paradox o fox. Eso te lo digo por puro concepto, porque no he trabajado a profundidad con access, y quien quita y el propio sistema operativo abre un puerto al cual conectarse. En todo caso, hacer ingeniería inversa de los protocolos de M$, que no están documentados por ningún lado, es mas dificil todavía. Si no, preguntales a los del proyecto Samba :D

Hasta luego.

;)

Caral
07-09-2006, 19:23:21
Gracias jachguate
A por otra que ya conestaste mi duda, a seguir aprendinendo que no queda otra.
Saludos y gracias de nuevo.

Alexander
12-09-2006, 06:05:51
Según lo que entiendo vas a conectarte a una base acces desde otras máquinas, por tcp/ip.

Me imagino que para no utilizar una carpeta compartida de la base de datos o algo similar.

Lo que puedes es crear un pequeño protocolo y haces dos exes uno que solicite y otro que reciba y responda. El que solicita está en tus clientes y el otro en el servidor. y listo, allí hay comunicación por sockets.

Yo creo que deberías explicar exactamente que quieres y que no quieres hacer, o cual es tu entorno y sus limitaciones para poder dar una solución u opciones, y no preguntar de forma ambigua donde se crean respuestas ambiguas.


Blue Sky.

Alexander.