Mercurial > hg > ltpda
view m-toolbox/classes/+utils/@jmysql/query.m @ 5:5a49956df427 database-connection-manager
LTPDAPreferences panel for new LTPDADatabaseConnectionManager
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Mon, 05 Dec 2011 16:20:06 +0100 |
parents | f0afece42f48 |
children | 91f21a0aab35 |
line wrap: on
line source
% QUERY query an LTPDA repository. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % DESCRIPTION: QUERY query an LTPDA repository. % % CALL: results = query(conn, q) % [results, col_names] = query(conn, q) % % INPUTS: % conn - an mpipeline.repository.RepositoryConnection object, % as is returned by utils.jmysql.connect % q - a valid MySQL query string % % OUTPUTS: % results - a cell-array of the results % col_names - a cell-array of the column names in the query % % VERSION: $Id: query.m,v 1.1 2009/07/27 19:46:21 hewitson Exp $ % % HISTORY: 24-05-2007 M Hewitson % Creation % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (*) the expiry time for MySQL logins is a property of the % LTPDA Toolbox and can be set in the LTPDA Preferences. function varargout = query(varargin) prefs = getappdata(0, 'LTPDApreferences'); if ~isa(varargin{1}, 'mpipeline.repository.RepositoryConnection') error('### The first argument should be a RepositoryConnection'); end if ~ischar(varargin{2}) error('### The second argument should be a query string.'); end % Inputs conn = varargin{1}; q = varargin{2}; % Outputs results = {}; colnames = {}; % Check connection if ~conn.isConnected conn.openConnection end if ~conn.isConnected conn.display; error('### Failed to open connection'); return end resultSet = conn.query(q); % Set outputs if nargout > 0 varargout{1} = resultSet; if nargout == 2 % Get column names from the meta data rsm = resultSet.getMetaData; Nc = rsm.getColumnCount; colnames = cell(1,Nc); for kk=1:Nc colnames{kk} = char(rsm.getColumnName(kk)); end varargout{2} = colnames; end end end