www.gusucode.com > 学生管理系统的一个例子GUI界面的管理matlab源码程序 > 学生管理系统的一个例子GUI界面的管理matlab源码程序/Matlab_database_GUI/LinkDB.m
function f=LinkDB(DB_path,DB_sourcename,Index) %本函数是用来自动配置数据库源文件。该函数仅适用于配置Access数据源。 %调用格式 %linkDB(DB_path,DB_sourcename,1) %DB_sourcename='godman' %DB_path='D:\Program Files\MATLAB71\work\demo.mdb' %函数运行后将产生文件regedit_DB.reg %Index=1时要删除regedit_DB.reg,Index=0时不删除regedit_DB.reg %Godman 2009.4.3 tntuyh@163.com TempStr1=StrSpliteToCell(DB_path,'\'); TempStr2=CellStrJoinWithSeparator(TempStr1,'\\\\'); DB_path=TempStr2.ans; %add sourcename fid=fopen('regedit_DB.reg','wt'); String='Windows Registry Editor Version 5.00\n\n'; fprintf(fid,String); String='[HKEY_CURRENT_USER\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources]\n'; fprintf(fid,String); String=strcat(['"' DB_sourcename '"'],'="Microsoft Access Driver (*.mdb)"\n\n'); fprintf(fid,String); %add filepath String=['[HKEY_CURRENT_USER\\Software\\ODBC\\ODBC.INI\\',DB_sourcename,']\n']; fprintf(fid,String); String='"Driver"="C:\\\\WINDOWS\\\\system32\\\\odbcjt32.dll"\n'; fprintf(fid,String); String=['"DBQ"="',DB_path,'"\n']; fprintf(fid,String); String='"DriverId"=dword:00000019\n'; fprintf(fid,String); String='"FIL"="MS Access;"\n'; fprintf(fid,String); String='"SafeTransactions"=dword:00000000\n'; fprintf(fid,String); String='"UID"=""\n\n'; fprintf(fid,String); %add jet String=['[HKEY_CURRENT_USER\\Software\\ODBC\\ODBC.INI\\',DB_sourcename,'\\Engines]\n\n']; fprintf(fid,String); String=['[HKEY_CURRENT_USER\\Software\\ODBC\\ODBC.INI\\',DB_sourcename,'\\Engines\\Jet]\n']; fprintf(fid,String); String='"ImplicitCommitSync"=""\n'; fprintf(fid,String); String='"MaxBufferSize"=dword:00000800\n'; fprintf(fid,String); String='"PageTimeout"=dword:00000005\n'; fprintf(fid,String); String='"Threads"=dword:00000003\n'; fprintf(fid,String); String='"UserCommitSync"="Yes"\n'; fprintf(fid,String); % fclose(fid); %打开regedit_DB.reg文件,将链接信息导入到注册表中 dos('regedit_DB.reg'); if Index==1 delete('regedit_DB.reg'); end function f=StrSpliteToCell(Str1,Str2) %DataPath ='D:\Program Files\MATLAB71\work\data.txt' %Str='\' %StrSpliteToCell(DataPath, Str) %ans = % 'D:' 'Program Files' 'MATLAB71' 'work' 'data.txt' Len1=length(Str1); Len2=length(Str2); Temp=strfind(Str1,Str2); Temp=[1-Len2 Temp Len1+1]; CellLen=length(Temp)-1; TempCell=cell(1,CellLen); for i=1:CellLen TempCell(i)={Str1(Temp(i)+Len2:Temp(i+1)-1)}; end f=TempCell; function f=CellStrJoinWithSeparator(Array,varargin) %本函数是用来把元胞格式转换为字符串格式 %str={'Godman','come','back!'}; %CellStrJoinWithSeparator(str,' ') %ans = % Message: '' % ErrNum: 0 % ans: 'Godman come back!' f.Message=''; f.ErrNum=0; f.ans=''; if isempty(varargin) Str=' '; else Str=varargin{1}; end if isempty(Array) f.Message='第一个参数不能为空!'; elseif ~iscellstr(Array) f.Message='第一个参数必须是cellstr数据类型!'; elseif ~ischar(Str) f.Message='第二个参数必须是str数据类型!'; end if isempty(Str) Str=' '; end if f.Message f.ErrNum=1; f.ans=''; return end len=length(Array); temp=cell2mat(Array(1)); for i=2:len temp=strcat(temp,[Str,cell2mat(Array(i))]); end f.ErrNum=0; f.ans=temp;