0001 function attrib_id = mysql_check_attribute(attrib_tag, params)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 try
0024 conn_id = params.conn_id;
0025 tmp_conn_id = 0;
0026 catch
0027 tmp_conn_id = 1;
0028 conn_id = 0;
0029 params.conn_id = conn_id;
0030 end
0031
0032
0033 if mysql_check_conn(conn_id)
0034 mysql_make_conn(params);
0035 end
0036
0037
0038 if isfield(params,'create')
0039 create = params.create;
0040 else
0041 create=false;
0042 end
0043
0044 if isfield(params,'class')
0045 attrib_class = params.class;
0046 else
0047 attrib_class = 'stim_set';
0048 end
0049
0050
0051 if ~iscell(attrib_tag)
0052 attrib_tag = {attrib_tag};
0053 end
0054
0055 num_attrib = length(attrib_tag);
0056
0057 for iattrib = 1:num_attrib
0058 curr_tag = attrib_tag{iattrib};
0059
0060
0061 mysql_str = sprintf('SELECT attribute_id FROM attribute WHERE name="%s" AND class="%s";', curr_tag, attrib_class);
0062 [curr_id] = mysql(conn_id, mysql_str);
0063
0064 if isempty(curr_id) && create
0065
0066 mysql_str = sprintf(['INSERT INTO attribute (name,class) ' ...
0067 'VALUES ("%s","%s");'], curr_tag, attrib_class);
0068 mysql(conn_id,mysql_str);
0069
0070
0071 mysql_str = sprintf('SELECT attribute_id FROM attribute WHERE name="%s" AND class="%s";', curr_tag, attrib_class);
0072 [attrib_id(iattrib)] = mysql(conn_id, mysql_str);
0073 fprintf('Created attribute (%s), ID=%d\n', curr_tag, attrib_id(iattrib));
0074 elseif isempty(curr_id) && ~create
0075 if num_attrib == 1
0076 attrib_id = [];
0077 else
0078 attrib_id(iattrib) = NaN;
0079 end
0080 else
0081 attrib_id(iattrib) = curr_id;
0082 fprintf('Found attribute (%s), ID=%d\n', curr_tag, attrib_id(iattrib));
0083 end
0084 end
0085
0086
0087 if tmp_conn_id
0088 mysql(conn_id,'close');
0089 params.conn_id = [];
0090 end