Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Providers (https://www.clubdelphi.com/foros/forumdisplay.php?f=10)
-   -   ClientDataSet y problema con Win Server 2003 (https://www.clubdelphi.com/foros/showthread.php?t=79574)

mjjj 17-07-2012 22:27:19

ClientDataSet y problema con Win Server 2003
 
Hola amigos de foro, tengo el siguiente problema.
Utilizo Delphi 2010, Firebird 2.5 y un clientdataset para crear una tabla temporal en memoria.

El sistema operativo de desarrollo es WinXP y corre sin ningún problema. Una vez el programa estuvo listo lo copie al servidor con Win Server 2003, y ocurre que la palicación no coore, ni siquiera me tira un error. Después de mucho buscar, descubrí que el probelames está con el clientdataset. Si este lo cierro, la aplicación se ejecuta, pero al momento de abrirlo en tiempo de ejecucción me arroja el error de problema al cargar midas.dll.

Leyendo en foros, aconsejan crear campos del clientdataset en tiempo de ejecuccion y de esta manera no arrojaría errores.
Porque ocurre esto?
La solución de crear los campos en tiempo de ejecucción no me sirve, ya que necesito tener creados estos campos con antelación, ya que realizo algunas tareas con estos campos.

Como puedo resover esto, sin tener que eliminar los campos en diseño y crearlos en ejecucción?

Espero me puedan ayudar.
Gracias

Casimiro Notevi 17-07-2012 22:44:03

¿Pero tienes midas en ese otro ordenador?, no ha quedado claro en tu comentario.

mjjj 17-07-2012 22:57:30

No estaba mida.dll, pero lo he copiado a la carpeta donde donde esta la aplicación, sigue el mismo problema.

:(

Casimiro Notevi 17-07-2012 23:02:19

¿Has probado a incluirlo en el programa?, en el uses.

mjjj 17-07-2012 23:17:31

En el form donde tengo el clientdataset agregue el uses midas, sigue igual. Será que midas se tiene que instalar??

Casimiro Notevi 17-07-2012 23:30:41

No, no tienes que instalarlo.
Elimina ese componente clintdataset y pon otro nuevo, que algunas veces ocurren cosas raras.

mjjj 17-07-2012 23:38:34

no hay caso, que otro componenete podré utilizar que tenga la misma función??

Casimiro Notevi 17-07-2012 23:46:26

No, no, lo que digo es que quites el que tienes y vuelvas a colocar otro igual.

mjjj 17-07-2012 23:56:40

ya he hecho eso, y sigue igual... ya he perdido mucho tiempo en esto, pero eso puede ser una buena idea utilizar otros componentes que hagan algo parecido.

A pesar que esto ya los se utilizar y vienen con Delphi 2010.

Al González 18-07-2012 00:31:07

Cita:

Empezado por mjjj (Mensaje 437656)
[...] ni siquiera me tira un error. Después de mucho buscar, descubrí que el probelames está con el clientdataset. Si este lo cierro, la aplicación se ejecuta, pero al momento de abrirlo en tiempo de ejecucción me arroja el error de problema al cargar midas.dll [...]

Sería bueno comenzar por partes, mjjj.

Primero dices que no hay mensaje de error, luego dices que sí. De acuerdo. :)

¿Podrías indicarnos qué mensaje de error es? Con exactitud y dando más detalles del contexto en el que ocurre ese error. Así será más fácil para nosotros imaginar dónde podrían estar las causas.

Por otro lado, considera que como alternativa al uso de MIDAS.dll existe la opción de agregar la unidad MidasLib a una cláusula Uses (Casimiro lo mencionó mensajes arriba). En lo personal esto último no me gusta mucho que digamos, ya que impide utilizar versiones de DataSnap más nuevas (y corregidas) que el compilador Delphi utilizado. Pero bueno, en la mayoría de los casos es suficiente agregar MidasLib en el Uses para remediar la dependencia hacia la DLL.

Sin embargo, a veces todo lo que se necesita es registrar esa DLL, con algún programa como RegSvr32.

De todas formas, mostrar el mensaje de error ayudaría mucho, para ir por partes.

Gracias, sé paciente. :)

Casimiro Notevi 18-07-2012 00:38:36

Cita:

Empezado por Al González (Mensaje 437677)
Gracias, sé paciente. :)

Desde luego, porque TClientDataSet es de lo mejorcito :)

mjjj 18-07-2012 01:02:33

Gracias por sus ideas. A ver les explico mejor el problema.
La aplicación funciona correctamente en el PC donde se desarrollo con WinXP, Delphi 2010 y apuntando a la IP del servidor donde está la BD.

Caso 1: En tiempo de diseño la propiedad del clientdataset.active := true, e intento ejecutarlo en el servidor (Win Server 2003), no me arroja ningún, pero tampoco corre, simplemente no hace nada.

Caso 2: En tiempo de diseño la propiedad del clientdataset.active := false, e intento ejecutarlo en el servidor (Win Server 2003), esta corre, sin embargo, al intentar crear el dataset, el clientdataset me arroja el siguiente error: Error loading Midas.DLL

Debo crear el clientdataset (si lo abro me arroja un error: missing data provinder or data packet) ya que no utilizo provider, sino con campos definidos el diseño, ya que además estos se utilizan para realizar algunas tareas.

La libreria midas.ddl la he copiado a System32 y la misma carpeta donde se ejecuta la aplicación.

Espero haya sido mas claro.
Gracias nuevamente.

Al González 18-07-2012 01:26:17

Bien, supongo que con crear el dataset te refieres al método CreateDataSet, que en tiempo de ejecución te permite crear un cursor en memoria sin conexión con ningún proveedor. Ahora está más claro. :)

Puede que tan solo te falte registrar la biblioteca MIDAS.dll o, en caso contrario y como ya se ha dicho, poner MidasLib en un Uses.

No está demás decir que la versión de MIDAS de Delphi 2010 no es precisamente la mejor, no obstante para la gran mayoría de los casos sus muy pocos y pequeños defectos no tienen relevancia.

Gracias por la ordenada y clara retroalimentación.

Saludos.

P.D. Fuera de tema, y cuando tengas un tiempo libre, te recomiendo leer este artículo. Es sobre las librerías y las bibliotecas. ;)

mjjj 18-07-2012 01:55:32

Muchas gracias por sus respuesta, finalmente esto funcionó. Solo faltaba agregar en uses midasLib, no como tenia escrito midas directamente.

:D

Casimiro Notevi 18-07-2012 08:37:55

Cita:

Empezado por mjjj (Mensaje 437686)
Muchas gracias por sus respuesta, finalmente esto funcionó. Solo faltaba agregar en uses midasLib, no como tenia escrito midas directamente.

:D

¿Y no te daba error? :confused:


La franja horaria es GMT +2. Ahora son las 15:25:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi