有關Access資料庫修复程式的說明 |
答題得分者是:ha0009
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
請教各位前輩﹒ 小弟日前在看lee前輩發表的有關Access資料庫修复程式﹐能否勞煩熟悉此程式的前輩給小弟寫一下程式碼相關的說明﹖程式碼如下﹕
Uses JRO_TLB; const Provider = 'Provider=Microsoft.Jet.OLEDB.4.0;'; SrcMDB = 'c:\db1.mdb'; DstMDB = 'c:\db2.mdb'; procedure TForm1.Button1Click(Sender: TObject); var JetEng : JetEngine; Src : WideString; Dest : WideString; SystemINI:TIniFile; ApplicationPath,fn,DataBase_AliasName:string; Reg: TRegistry; mdbfilename,mdbfilename2,mdbfilename3:string; ok:boolean; begin form1.caption:='修護中...'; mdbfilename:=edit1.text; application.ProcessMessages; mdbfilename2:=changefileext(mdbfilename,'_2.MDB'); mdbfilename3:=changefileext(mdbfilename,'_backup.MDB'); JetEng := CoJetEngine.Create; Src := Provider 'Data Source=' mdbfilename; Dest := Provider 'Data Source=' mdbfilename2; try If FileExists(DstMDB) Then DeleteFile(DstMDB); JetEng.CompactDatabase(Src, Dest); finally If FileExists(mdbfilename3) Then DeleteFile(mdbfilename3); renamefile(mdbfilename,mdbfilename3); renamefile(mdbfilename2,mdbfilename); form1.caption:='修護成功...'; JetEng := Nil; showmessage('●●●修護成功●●●'); end; end;不甚感激﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
感謝ha0009版主﹐好久沒有見您了說 這段程式碼中﹐小弟不明白的 class="code">Uses
JRO_TLB; const
Provider = 'Provider=Microsoft.Jet.OLEDB.4.0;';
SrcMDB = 'c:\db1.mdb';
DstMDB = 'c:\db2.mdb'; procedure TForm1.Button1Click(Sender: TObject);
var
JetEng : JetEngine;
Src : WideString;
Dest : WideString;
SystemINI:TIniFile;
ApplicationPath,fn,DataBase_AliasName:string;
Reg: TRegistry;
//請教一下這幾個變數的形態解釋和其使用方法
mdbfilename,mdbfilename2,mdbfilename3:string;
ok:boolean;
begin
form1.caption:='修護中...';
mdbfilename:=edit1.text;
application.ProcessMessages;
mdbfilename2:=changefileext(mdbfilename,'_2.MDB');
mdbfilename3:=changefileext(mdbfilename,'_backup.MDB');
JetEng := CoJetEngine.Create;
Src := Provider 'Data Source=' mdbfilename;
Dest := Provider 'Data Source=' mdbfilename2;
//這兩句對應了上面的變數宣告﹐那它的完整格式是怎么的﹖
try
If FileExists(DstMDB) Then
DeleteFile(DstMDB);
JetEng.CompactDatabase(Src, Dest);
finally
If FileExists(mdbfilename3) Then
DeleteFile(mdbfilename3);
renamefile(mdbfilename,mdbfilename3);
renamefile(mdbfilename2,mdbfilename);
form1.caption:='修護成功...';
JetEng := Nil;
showmessage('●●●修護成功●●●');
end;
end; =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
JetEngine JRO處理数据库压缩和修理專用物件。使用下列方式取得物件實體。 JetEng := CoJetEngine.Create; 使用下列方式釋放物件 JetEng := Nil; 壓縮資料庫所使用的方法。 JetEng.CompactDatabase(來源連接字串, 完成的資料庫儲存的連接字串); WideString The WideString type represents a dynamically allocated string of 16-bit Unicode characters. In most respects it is similar to AnsiString. On Win32, WideString is compatible with the COM BSTR type. Borland development tools have support features that convert AnsiString values to WideString, but you may need to explicitly cast or convert your strings to WideString. TRegistry 操作 登錄(Register) 的物件。 RootKey 必須設定,詳細請查 Help Application.ProcessMessages; 怕程序佔用了cpu的處理權太久,導致程式無法處理其他的訊息。用此命令轉讓控制權, 讓作業系統處理其他訊息。 連接字串格式 如同 Connection 的連接字串一樣,除了下面的基本字串外,上有其他的命令,你在找找吧。 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[來源路徑]" |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |