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

1 Ansicht (letzte 30 Tage)
teresa
teresa am 28 Okt. 2011
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 Kommentar
Kaustubha Govind
Kaustubha Govind am 28 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Titus Edelhofer
Titus Edelhofer am 28 Okt. 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 Kommentare
teresa
teresa am 28 Okt. 2011
Hi Titus,
Could you explain in more detail how to add classpath to my deployment?
Regards.
Titus Edelhofer
Titus Edelhofer am 31 Okt. 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

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by