How do I connect JDBC with compiled application?
Show older comments
Hi,
We are using Matlab to process some data and want to output the result in a database.
To do so, we tried with the Database Toolbox. After some troubleshooting with JDBC Driver path which didn't seem to work out of the box, we have been able to run the script in Matlab this way:
conn = database(databasename, username, password, 'Server', server, 'PortNumber', port, 'Vendor', 'Microsoft SQL Server', 'AuthType', authType);
We are using the Matlab Compiler to produce an exe, the Compiler state that it should support the toolbox here.
When we do so, we still have the following error, which tell us the function does not seem to exists, an error we do not have in Matlab.

What can we do to troubleshoot this issue?
Thanks
For reference here a sample of the full script.
- writetable were added only for debugging
- datainsert is deprecated, sqlwrite should be used, but I could would not let me insert data only and was always generating a create table.
function [] = tampon(server, port, databasename, authType, username, password)
writetable(cell2table({'2'}),'log.txt','WriteVariableNames',false)
conn = database(databasename, username, password, 'Server', server, 'PortNumber', port, 'Vendor', 'Microsoft SQL Server', 'AuthType', authType);
writetable(cell2table({'3'}),'log.txt','WriteVariableNames',false)
load('output.mat');
writetable(cell2table({'4'}),'log.txt','WriteVariableNames',false)
output = output(:,1:5);
writetable(cell2table({'5'}),'log.txt','WriteVariableNames',false)
datainsert(conn,'dbo.test', cellstr(output.Properties.VariableNames), output);
writetable(cell2table({'6'}),'log.txt','WriteVariableNames',false)
close(conn);
writetable(cell2table({'7'}),'log.txt','WriteVariableNames',false)
end
6 Comments
Kojiro Saito
on 2 Apr 2019
Could you add the following line in your function
which database
and confirm Database Toolbox function is added compiled application properly?
Adrien Corbin
on 2 Apr 2019
Kojiro Saito
on 2 Apr 2019
Add "which database" in the first line in function tampon.
Then enable log file by checking in "Create log file" in Application Compiler Window (please see Additional Runtime Settings document). So result of "which database" is written in a log file of the compiled application.
Adrien Corbin
on 2 Apr 2019
Kojiro Saito
on 3 Apr 2019
So, database command is pointing to the right m file.
How did you set up JDBC driver in MATLAB and how do you call compiled exe in Command Prompt?
Adrien Corbin
on 4 Apr 2019
Edited: Adrien Corbin
on 5 Apr 2019
Accepted Answer
More Answers (0)
Categories
Find more on Database Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!