How to declare variables in a function

Hi,
I am curious as to why the variables 'user' and 'pass' are not recognized by Matlab in the following snippet. When the user launches the function, Matlab throws a undefined function or variable 'pben' where pben is the input from the user.
function update_table(user, pass)
% Info
username = user;
password = pass;
datasource = 'SGDOP';
% Connection and SQL query
conn = database(datasource, username, password);
sqlquery = ['SELECT * from table x'];
data = fetch(conn, sqlquery);
save('data.mat', 'data')
end

4 commentaires

Adam Danz
Adam Danz le 1 Août 2019
Modifié(e) : Adam Danz le 1 Août 2019
"pben" is nowhere in this code so the error is coming from somehwere else unless "pben" is an undefined variable you're trying to pass into this function. How are you calling the function? It might be helpful to see the entire copy-pasted error message (all of it).
madhan ravi
madhan ravi le 1 Août 2019
I'm not sure whether you're calling the function right, have a look at https://in.mathworks.com/help/matlab/matlab_prog/run-functions-in-the-editor.html on how to call a function properly.
Blue
Blue le 1 Août 2019
Hi,
I am launching the function as update_tabel(pben, aaaa) where pben is the user and aaaa would be the password. Then the user and password are used to establish the connection to a database.
Adam Danz
Adam Danz le 1 Août 2019
My bet is that when you call update_tabel(pben, aaaa), pben is not defined.

Connectez-vous pour commenter.

 Réponse acceptée

Steven Lord
Steven Lord le 1 Août 2019
My guess is that you're trying to call this function like:
update_table(pben, somePassword)
That attempts to pass the contents of the variable named pben or the result of calling a function named pben with 0 input arguments and 1 output argument into update_table. If you want to pass the literal text pben into the function, you need to specify it as a char vector or as a string.
update_table('pben', somePassword)
update_table("pben", somePassword)
If your password is not stored in a variable named somePassword but is the literal text somePassword, you need to pass that in as text as well.
update_table('pben', 'somePassword')
update_table("pben", "somePassword")

1 commentaire

Blue
Blue le 1 Août 2019
Ah. That was embarrasingly simple. Thank you.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by