Borrar filtros
Borrar filtros

It possible to compile out a .dll with database toolbox function inside?

1 visualización (últimos 30 días)
I have an application that works perfectly in MATLAB but when compiled as a c sharp dll does not...
function doModel(address,port,dbname,user,password,table,startingdate, endate)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%function doModel(address,port,db,user,password,table,startingdate,endate)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Input Parameters
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% address : database internet protocol address (ex: localhost,XXX.XXX.XXX.XXX...)
% port : internet port (ex: 1433)
% db : database name
% user : user with permission
% password: password for the user with permission
% table : database table
% startingdate : start date index for trainnign data selection
% enddate : end date index for trainning data selection
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Output Parameters
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% model.mat : file with databasedata
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%init database toolbox
javaaddpath('sqljdbc4.jar');
logintimeout(5,'com.microsoft.sqlserver.jdbc.SQLServerDriver');
%start database connection
driver = 'com.microsoft.sqlserver.jdbc.SQLServerDriver';
url = strcat('jdbc:sqlserver://',address,':',port,';database= ',dbname);
conn=database(dbname,user,password,driver,url);
setdbprefs('DataReturnFormat','cellarray');
%select Data from Table in Database where date is between startingdate and
%enddate
%colnames ={'Date','PowerConsumed','WorkingDay','Temperature','Rain'};
sqlquery = ['select * from ',dbname,'.dbo.',table,' where Date >=''',startingdate,''' and Date<=''',endate,''''];
curs = fetch(conn, sqlquery);
close(conn);
TimeMatrixString = curs(:,1);
TotalPower = curs(:,2);
save data.mat TimeMatrixString TotalPower;
Regards.
  1 comentario
Kaustubha Govind
Kaustubha Govind el 28 de Oct. de 2011
The Database Toolbox is supported with MATLAB Compiler (http://www.mathworks.com/products/compiler/compiler_support.html). You probably need to debug the issue to see what the error is. Try printing the conn.Message field from your MATLAB function - it is empty when the database command is successful.

Iniciar sesión para comentar.

Respuestas (1)

Titus Edelhofer
Titus Edelhofer el 28 de Oct. de 2011
Hi,
I guess you will need to add the sqljdbc4.jar statically, i.e., to your classpath.txt. On the deployment machine put the classpath.txt in the directory where the dll is as well.
Titus
  2 comentarios
teresa
teresa el 28 de Oct. de 2011
Hi Titus,
Could you explain in more detail how to add classpath to my deployment?
Regards.
Titus Edelhofer
Titus Edelhofer el 31 de Oct. de 2011
Hi Francesc,
you need to edit classpath.txt which is matlabroot/toolbox/local/classpath.txt on your development machine and mcrroot/toolbox/local/classpath.txt on the deployment machine (where mcrroot is where you installed the MCR using MCRInstaller, something like c:\program files\Matlab Compiler Runtime\v714
Titus

Iniciar sesión para comentar.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by