PDA

Ver la Versión Completa : Como realizar una aplicacion cliente/servidor en interbase?


Argaron
16-05-2003, 18:53:42
Hola hace tiempo que programo con delphi5 e interbase pero siempre en aplicaciones de escritorio. Ahora tengo que hacer una aplicacion cliente/servidor y tengo algunas dudas que quizas me podias responder:

1) ¿Que componentes utilizo el ibtable o el ibsql?, he leido bastante libros y todos recomiendan para este tipo de aplicaciones el segundo. ¿que opinais?

2) En caso del segundo ¿Como hago los insert y edit mediante la actualizacion en cache? puede alguien indicarme si ha trabajo con esta configuracion que tal funciona en red y que problemas ha tenido.

3) Y la tercera y la mas importante porque es donde no tengo ni idea de como hacerlo es ¿Como programo el database para que en los clientes se conecte al servidor?. Se supone que en los clientes correra el interbase client y la base de datos estara en el servidor con interbase server (el 7 por cierto), cuando instale mi aplicacion cliente ¿tengo que mostrar un formulario para que indiquen la ruta de la base de datos a la que se tiene que conectar o basta con configurar una serie de parametros en el interbase Client?

Gracias por todo y perdon por el rollo.

__cadetill
16-05-2003, 20:15:57
Posteado originalmente por Argaron
1) ¿Que componentes utilizo el ibtable o el ibsql?, he leido bastante libros y todos recomiendan para este tipo de aplicaciones el segundo. ¿que opinais?

Bueno, te falta por mencionar el que yo utilizo, el TIBDataset que, para mi, es el mejor componente de las IBX para acceder a la base de datos.

Posteado originalmente por Argaron
2) En caso del segundo ¿Como hago los insert y edit mediante la actualizacion en cache? puede alguien indicarme si ha trabajo con esta configuracion que tal funciona en red y que problemas ha tenido.

Bueno, en el caso que yo te expongo, el componente TIBDataset ya lleva las propiedades de InsertSQL, ModifySQL y DeleteSQL. Si utilizaras el TIBSQL, tendrias que unirlo con un TIBUpdateSQL y rellenar las propiedades mencionadas (InsertSQL, ModifySQL y DeleteSQL).
Lo que tienes que tener muy en cuenta en el momente de trabajar en red es hacer consultas que devuelvan los registros que realmente necesitas, es decir, si tienes una tabla de 125 campos y 1millon de registros no hagas cosas como

select * from tabla

sino algo como

select campo1, campo2,..,campoN from tabla where condicion/es

Es muy importante minimizar el flujo de información por la red

Posteado originalmente por Argaron
3) Y la tercera y la mas importante porque es donde no tengo ni idea de como hacerlo es ¿Como programo el database para que en los clientes se conecte al servidor?. Se supone que en los clientes correra el interbase client y la base de datos estara en el servidor con interbase server (el 7 por cierto), cuando instale mi aplicacion cliente ¿tengo que mostrar un formulario para que indiquen la ruta de la base de datos a la que se tiene que conectar o basta con configurar una serie de parametros en el interbase Client?


Bueno, la ruta que pongas en el TIBDatabase tiene que ser del estilo.... 125.125.95.1:c:\basededatos\datos.gdb

kinobi
16-05-2003, 20:17:50
Hola,

Posteado originalmente por Argaron
1) ¿Que componentes utilizo el ibtable o el ibsql?, he leido bastante libros y todos recomiendan para este tipo de aplicaciones el segundo. ¿que opinais?
El IBTable lo desaconseja el mismo Jeff Overcash (el desarrollador principal de IBX), por no ser apropiado para el trabajo en entornos cliente/servidor. Prácticamente "subsiste" por compatibilidad hacia atrás. En cuanto a IBSQL es una posibilidad interesante, poco consumo de recursos, aunque a costa de una menor funcionalidad con relación a otros conjuntos de datos; eso sí, si no vas a utilizar controles enlazados a datos (TDBGrid's, TDBEdit's, ...), ya que no es descendiente de TDataSet.

Los componentes IBX recomendados normalmente son: TIBQuery y TIBDataSet

Posteado originalmente por Argaron
3) ... Se supone que en los clientes correra el interbase client
No. De hecho el llamado cliente InterBase no corre en ningún sitio. Simplemente es una biblioteca (en el caso de Windows la DLL gds32.dll) que implementa el API InterBase por el que los clientes se comunican con el servidor a través de las funciones que implementa.

Posteado originalmente por Argaron
y la base de datos estara en el servidor con interbase server (el 7 por cierto), cuando instale mi aplicacion cliente ¿tengo que mostrar un formulario para que indiquen la ruta de la base de datos a la que se tiene que conectar o basta con configurar una serie de parametros en el interbase Client?
A gusto del consumindor, ambas opciones son válidas, cuadro de diálogo o parámetros del componente introducidos "a pelo" en el código, o por medio de archivos de configuración.

Saludos.

Nota: no he respondido a la cuestión 2 porque hay compañeros en el foro con mucha más experiencia con las actualizaciones en caché.