![]() |
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 |
¿Pero tienes midas en ese otro ordenador?, no ha quedado claro en tu comentario.
|
No estaba mida.dll, pero lo he copiado a la carpeta donde donde esta la aplicación, sigue el mismo problema.
:( |
¿Has probado a incluirlo en el programa?, en el uses.
|
En el form donde tengo el clientdataset agregue el uses midas, sigue igual. Será que midas se tiene que instalar??
|
No, no tienes que instalarlo.
Elimina ese componente clintdataset y pon otro nuevo, que algunas veces ocurren cosas raras. |
no hay caso, que otro componenete podré utilizar que tenga la misma función??
|
No, no, lo que digo es que quites el que tienes y vuelvas a colocar otro igual.
|
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. |
Cita:
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. :) |
Cita:
|
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. |
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. ;) |
Muchas gracias por sus respuesta, finalmente esto funcionó. Solo faltaba agregar en uses midasLib, no como tenia escrito midas directamente.
:D |
Cita:
|
La franja horaria es GMT +2. Ahora son las 00:05:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi