Vamos por parte:
1º.- Lo que me comentas de la duda, no te has dado cuenta que mas abajo, vuelvo a inicializar "carpeta" de esta forma:
Código:
carpeta:=ExtractFilePath(ParamStr(0))+'Datos\NET';
Con esto lo que pretendo es que si existe la carpeta "net" dentro de datos estamos en el servidor y si no existe, estamos en el cliente. Por supuesto, con el instalador distingo entre servidor y cliente.
2º.- Como tu comentas, el error parece producido por un problema de relacion, pero no lo entiendo, ya que si ejecuto el programa desde el servidor (con win98) y habro las tablas no se produce ningún error, mientras que si ejecuto el programa desde el cliente (con winxp) me da este error. El programa es el mismo, con las mismas lineas de codigo y en el mismo orden, con lo cual no entiendo como en un lado puede darme un error de maestro-detalle y por el otro lado no. Los dos programas acceden a la misma base de datos. Asi pues, pienso que el error debe de estar producido por otro motivo. Por cual? esa es la cuestión.
3º.- Si por ahorrar codigo, no lo he puesto pero hago todo lo que dices antes de abrir las tablas.
4º.- Con la unidad de red no hay problema, ya que es el equipo que tiene WinXP el que se conecta a la base de datos a traves de ella. El que tiene Win98 tiene la base de datos de forma local.
5º.- Lo del alias, gracias por el codigo, pero yo lo que hago es que en la instalacion creo directamente los alias.
Bueno, gracias por tus comentarios, pero el error sigue produciendose. Seguiré probando. Si alguien me suguiere alguna otra idea, será bien recibida.
Saludos.