0001 function target = DBMerge(source,target,varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 CheckMyM;
0030
0031
0032 if nargin < 2,
0033 error('Incorrect number of parameters (type ''help <a href="matlab:help DBMerge">DBMerge</a>'' for details).');
0034 end
0035 if ~isastring(source),
0036 error('Incorrect source database name (type ''help <a href="matlab:help DBMerge">DBMerge</a>'' for details).');
0037 end
0038 if ~isastring(target),
0039 error('Incorrect target database name (type ''help <a href="matlab:help DBMerge">DBMerge</a>'' for details).');
0040 end
0041
0042
0043 current = DBUse;
0044 try
0045 DBUse(source);
0046 catch
0047 error(['Source database ''' source ''' not found (type ''help <a href="matlab:help DBDuplicate">DBDuplicate</a>'' for details).']);
0048 end
0049 if ~isempty(current), DBUse(current); end
0050 try
0051 DBUse(target);
0052 catch
0053 error(['Target database ''' target ''' not found (type ''help <a href="matlab:help DBDuplicate">DBDuplicate</a>'' for details).']);
0054 end
0055 if ~isempty(current), DBUse(current); end
0056
0057
0058 disp(['Please make sure that the databases do not overlap, otherwise ''' target ''' will be damaged.']);
0059 s = lower(input('Type ''merge'' to confirm: ','s'));
0060 if ~strcmp(s,'merge'),
0061 disp('*** Cancelled ***');
0062 return
0063 end
0064
0065
0066 try
0067 h = mym(['insert into ' target '.' 'figures select * from ' source '.figures']);
0068 h = mym(['insert into ' target '.' 'variables select * from ' source '.variables']);
0069 catch
0070 error('FMAToolbox:DBMerge:mergeDB',['Could not merge databases ''' source ''' and ''' target ''' (non-unique eid-name pairs?)']);
0071 end
0072
0073
0074 storage = DBExternalStoragePath;
0075 sourceDirectory = [storage '/' source];
0076 targetDirectory = [storage '/' target];
0077 s = [sourceDirectory '/variables'];
0078 t = [targetDirectory '/variables'];
0079 if isdir(s),
0080 if ~isdir(t), mkdir(t); end
0081 if ~copyfile([s '/*'],t),
0082 error(['Could not copy external storage for variables.']);
0083 end
0084 end
0085 s = [sourceDirectory '/figures'];
0086 t = [targetDirectory '/figures'];
0087 if isdir(s),
0088 if ~isdir(t), mkdir(t); end
0089 if ~copyfile([s '/*'],t),
0090 error(['Could not copy external storage for figures.']);
0091 end
0092 end