PDA

Ver la Versión Completa : Problema con TSQLQuery y BPL.


nato2005
15-12-2010, 23:34:53
Hola a todos.

Tengo un problema al utilizar bpl y cargarlos en tiempo de ejecución. Mi problema consiste al momento de crear dentro del bpl un TSQLQuery, por ejemplo:

Dentro del BPL tengo el siguiente código:

procedure Prueba;
var
Q:TSQLQuery;
begin
Q:=TSQLQuery.Create(nil);
try

finally
FreeAndNil(Q);
end;
end;

Exports
Prueba;


Lo compilo como RunTime Only, y lo cargo en mi aplicación principal con el siguiente código:

var
phm: HModule;
LaPrueba: procedure;
begin
phm:=LoadPackage(ExtractFilePath(ParamStr(0)) + 'Prueba.bpl');
if phm <> 0 then
try
@LaPrueba:=GetProcAddress(phm,'Prueba');
if Assigned(LaPrueba) then
LaPrueba
else
ShowMessage('No se encontró el procedimiento Prueba');
finally
UnloadPackage(phm);
end
else
ShowMessage ('No se encontró Prueba.bpl');
end;


El problema ocurre en la línea del BPL Q:=TSQLQuery.Create(nil); pues me muestra la siguiente excepcion "Application is not licensed to use this feature", y he comprobado que solamente ocurre al utilizar objetos que heredan del TDataSet. La licencia que estoy utilizando es Arquitect. ¿Alguna sugerencia para solucionar el problema?

Neftali [Germán.Estévez]
16-12-2010, 16:15:02
Hola nato2005, bienvenido a los foros.
Antes de nada te recomiendo que revises la Guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) y que utilices TAG's cuando añadas código (http://tinyurl.com/y5ctbot).

En cuanto a la duda, creo que no es problema del código, que parece correcto, segun de algun defecto de tu versión de Delphi o tal vez algún problema en la instalación.

Lo correcto creo que sería contactar con la gente de embarcadero y que ellos te lo resuelvan.
También puedes revisar en los foros de embarcadero para ver si hay más gente con el mismo problema:
http://edn.embarcadero.com/article/27031
https://forums.embarcadero.com/thread.jspa?threadID=13453