PDA

Ver la Versión Completa : Trabajando con Sockets


lucendo
02-06-2004, 18:29:58
Hola, soy novato con el Delphi y estoy trabajando con los Sockets ya que trabajo con una Base de Datos multiusuario que trabaja con Tcp/Ip y quiero acceder con Delphi.

Ya he conseguido conectar enviar una orden ejecutarla y me falta poder recojer todo lo que me manda el socket pero tengo muchos problemas.
Me gustaria que alguien me echara una mano.

Si me podeis mandar algun ejemplo mejor.


Gracias anticipadas.

Ruben :(

eduarcol
02-06-2004, 18:39:43
Pues si fueras un poquito mas especifico respecto a los problemas, :confused:

Con respecto al ejemplo mirate el demo del chat que trae delphi esmuy bueno

jachguate
02-06-2004, 20:00:54
Hola.

Hay muchas bases de datos que trabajan con tcp/ip, por ejemplo: Oracle, Firebird, mySQL, Interbase... por mencionar solo algunas.

No se porque queres hacerlo a tan bajo nivel... pero normalmente encontraras juegos de componentes que ya encapsulan toda la complejidad de la comunicación con la propia base de datos, o con clientes de base de datos instalados en las terminales (via API's), y que te devuelven DataSets (tan fáciles de manejar) de delphi.

Incluso hay "motores" que te premiten conectarte a diferentes bases de datos, como el caso del BDE y de ADO.

Si aclaras con que base de datos trabajas, seguramente habrá mas de una sugerencia de componentes de este tipo.

Hasta luego.

;)

lucendo
08-06-2004, 20:55:50
Perdon, tienes toda la razon, la Base de Datos con la que trabajo es MVBASE

No se si te sonara es una base de datos relacional.

jachguate
09-06-2004, 06:56:08
Bueno. Ese es un motor que nunca habia escuchado... ponete en contacto con el fabricante o algun grupo de soporte del mismo, pues seguro ellos pueden orientarte sobre si hay algun componente ya funcional para Delphi.

Si no, siempre podes derivar vos mismo del TDataSet los componentes apropiados para conectarse... pero esa es una tarea realmente ardua.

Hasta luego.

;)

lucendo
16-02-2005, 22:12:09
Bueno, ya estoy aqui de nuevo aunque he estado un tiempo desconectado del Delphi lo he retomado ya en serio para seguir peleandome con los Sockets dichosos pues la base de datos con la que yo trabajo no tiene ningun componente ni conexion directa con Delphi, asi que estoy montandome yo solito unas pruebas de dialogo a traves de telnet y con componentes Indy sobre Delphi 7.
De momento ya he conseguido conectar e intercambiar cadenas entre la base de datos y delphi asi que ya estoy montando un mantenimiento de fichero con Delphi 7 utilizando esta base de datos (mvBase).
Lo que estoy haciendo de momento es con el TidTelnet mandar cadenas que son comandos hacia la base de datos y recojo lo que la base de datos responde como resultado.
Establezco la conexion por Tcp/Ip y un puerto determinado y cuando la base de datos responde voy mandando comandos y recojiendo respuestas.Lo que me falta es dominar un poco mas el tratamiento de las cadenas que mando y recibo, pues pierdo informacion por que no controlo el tamaño de las cadenas.
-----
Entonces lo quiero es que si alguno me puede dar algunas ideas para mejorar el control de esas cadenas me ayudaria un monton.Teniendo en cuenta que estoy dialogando con una pared que se limita a devolverme cadenas que son respuestas a lo que yo le mando como un terminal asincrono de Unix.
-
Bueno si necesitais mas detalles pedirme lo que haga falta.

Gracias anticipadas.

mamcx
16-02-2005, 22:32:55
Ya que estas empezando, mejor ahorrate el esfuerzo y chequea www.msgconnect.com (gratis) o www.remobjects.com (comercial pero si lo vale)

Tal vez te sirva una ojeada a mi blog http://www.solucionesvulcano.com/blog/2004/09/aplicaciones-multi-nivel-primeros.html

Si te entiendo bien NO estas tomando la comunicacion DIRECTAMENTE con la base de datos sino por medio de un componente intermediario (o servidor). En ese caso, es mejor que reuses lo que esta hecho..

mamcx
16-02-2005, 22:35:28
Ups!! realmente queria poner era http://www.solucionesvulcano.com/blog/2004/09/aplicaciones-multi-nivel-haciendo-la.html

lucendo
16-02-2005, 23:11:40
Gracias, mamcx por los links y tu web, le he dado un vistazo y tiene comentarios interesantes.
-
Pero la Base de Datos que yo menciono funciona en un Servidor de Red y tiene su propio procesador de comandos y lenguaje de programacion y ademas solo funciona por telnet con lo que tengo que emular a un terminal para recojer todo lo que manda por el socket y tratarlo.
-
Seguire tratando de explicar como funciona esta base de datos para ver si alguien me entiende o yo procurare explicarlo cada vez mejor.
-

Gracias

lucendo
16-02-2005, 23:20:40
Bueno, explicare que tengo aplicaciones funcionando muchos años en servidores con esta base de datos pero funcionan en modo caracter y por eso estoy estudiando Delphi como opcion para modernizar todo este software ya me parece que es la mejor opcion como entorno de desarrollo.

Queria aclarar esto.

Un saludo

mamcx
16-02-2005, 23:36:31
Ok... entonces es mas un cliente TelNet que otra cosa...

Ahora si quedo frito... busque algo en Google pero no capto nada. Tal vez deberias investigar si existe acceso por ODBC, OLEDB o algo asi...

Deberias repostear y ELIMINA el dato de la BD, para que no nos confunda a los que estamos acostumbrados a BDE/ODBC/OLEDB/JDBC y esas cosas.

Deberias empezar por escribir como es el protocolo de comunicacion y luego que porblemas especificos tienes. Como no se como se hace Telenet (solo conozcon el termino) trata de especificar la gramatica de la comunicacion. Por ejemplo, la de SOAP es asi (para un Servico web que estoy haciendo):

POST /ActiveNet/ServiciosWeb/Consulta.asmx/consultar HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: length

Info=string&strEmpresa=string&strTabla=string&strCampos=string&strFiltro=string&strOrden=string

(P.D: Mira que interesante el Length: Es la implementacion de una cadena Pascal... si tienes problemas determinando un tamaño de un string, haz un string pascal, algo como:

5 c i n c o

Nota que el tamaño es al principio, siga el modelo de http://www.joelonsoftware.com/articles/fog0000000319.html
)

Trata de especificar en estos terminos la pregunta...porque me parece que NO tienes problemas de BD sino de protocolos y comunicacion...

lucendo
17-02-2005, 00:00:36
Bueno, ante todo gracias por tu paciencia.
-
En cuanto a la BD quizas tengas razon en lo de que no la mencione para no confundiros.En realidad es una multi-dimensional database management systems (mvBase offers a high-performance multi-dimensional database engine ), pero no quiero liaros mas con todo esto.
-
Si que tiene un ODBC, pero no quiero utilizarlo porque no es como el ODBC para SQL u ORACLE, es muy retorcido y complicado de configurar.
-
Lo mejor es que explique lo que estoy haciendo con ejemplos y asi me podreis ayudar mejor.

Pero otro dia ya que aqui son las 23:55 de la noche y me voy a casa

Un saludo

Gracias