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 件のコメント

Adam Danz
Adam Danz 2019 年 8 月 1 日
編集済み: Adam Danz 2019 年 8 月 1 日
"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 2019 年 8 月 1 日
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 2019 年 8 月 1 日
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 2019 年 8 月 1 日
My bet is that when you call update_tabel(pben, aaaa), pben is not defined.

サインインしてコメントする。

 採用された回答

Steven Lord
Steven Lord 2019 年 8 月 1 日

3 投票

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 件のコメント

Blue
Blue 2019 年 8 月 1 日
Ah. That was embarrasingly simple. Thank you.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

タグ

質問済み:

2019 年 8 月 1 日

コメント済み:

2019 年 8 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by