DELPHI中操作ACCESS數(shù)據(jù)庫
時(shí)間:2003-12-21 09:44 來源:ysai 作者:ysai 閱讀:次
DELPHI中操作access數(shù)據(jù)庫(建立.mdb文件,壓縮數(shù)據(jù)庫)
以下代碼在WIN2K,D6,MDAC2.6下測試通過,
編譯好的程序在WIN98第二版無access環(huán)境下運(yùn)行成功.
//聲明連接字符串
Const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';
//=============================================================================
// Procedure: GetTempPathFileName
// Author : ysai
// Date : 2003-01-27
// Arguments: (None)
// Result : string
//=============================================================================
function GetTempPathFileName():string;
//取得臨時(shí)文件名
var
SPath,Sfile&:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(result);
end;
//=============================================================================
// Procedure: CreateaccessFile
// Author : ysai
// Date : 2003-01-27
// Arguments: FileName:String;PassWord:string=''
// Result : boolean
//=============================================================================
function CreateaccessFile(FileName:String;PassWord:string=''):boolean;
//建立access文件,如果文件存在則失敗
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
//=============================================================================
// Procedure: CompactDatabase
// Author : ysai
// Date : 2003-01-27
// Arguments: AFileName,APassWord:string
// Result : boolean
//=============================================================================
function CompactDatabase(AFileName,APassWord:string):boolean;
//壓縮與修復(fù)數(shù)據(jù)庫,覆蓋源文件
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
format(SConnectionString,[STempFileName,APassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
以下代碼在WIN2K,D6,MDAC2.6下測試通過,
編譯好的程序在WIN98第二版無access環(huán)境下運(yùn)行成功.
//聲明連接字符串
Const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';
//=============================================================================
// Procedure: GetTempPathFileName
// Author : ysai
// Date : 2003-01-27
// Arguments: (None)
// Result : string
//=============================================================================
function GetTempPathFileName():string;
//取得臨時(shí)文件名
var
SPath,Sfile&:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(result);
end;
//=============================================================================
// Procedure: CreateaccessFile
// Author : ysai
// Date : 2003-01-27
// Arguments: FileName:String;PassWord:string=''
// Result : boolean
//=============================================================================
function CreateaccessFile(FileName:String;PassWord:string=''):boolean;
//建立access文件,如果文件存在則失敗
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
//=============================================================================
// Procedure: CompactDatabase
// Author : ysai
// Date : 2003-01-27
// Arguments: AFileName,APassWord:string
// Result : boolean
//=============================================================================
function CompactDatabase(AFileName,APassWord:string):boolean;
//壓縮與修復(fù)數(shù)據(jù)庫,覆蓋源文件
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
format(SConnectionString,[STempFileName,APassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
(責(zé)任編輯:admin)
頂一下
(0)
0%
踩一下
(0)
0%
相關(guān)內(nèi)容
- ·sql語句中l(wèi)ike通配符的匯總(*?!#-等含
- ·Access常用sql基本查詢語句匯總
- ·SQL查詢語句的一般格式小結(jié)
- ·聯(lián)合查詢應(yīng)用舉例1
- ·如何取消操作查詢的提示
- ·報(bào)表中先按組再按條件統(tǒng)計(jì)
- ·測試查詢速度
- ·條件選擇列求和
- ·SQL必知必會(huì)(14)NOT操作符
- ·ACCESS的參數(shù)化查詢-Access數(shù)據(jù)庫教程
- ·ACCESS的真假:四、"SELECT * INTO 工
- ·在Access中利用搜索窗體中的值生成動(dòng)態(tài)
- ·Access使用查詢
- ·隨機(jī)得到Access數(shù)據(jù)庫記錄
- ·SQL 高級(jí)使用
- ·交叉表查詢中的累計(jì)
最新內(nèi)容
推薦內(nèi)容
熱點(diǎn)內(nèi)容
- ·Sql Server 和 Access 操作數(shù)據(jù)庫結(jié)構(gòu)的常
- ·ACCESS中使用SQL語句應(yīng)注意的地方及幾點(diǎn)技
- ·一個(gè)計(jì)算庫存及結(jié)轉(zhuǎn)的例子
- ·如何實(shí)現(xiàn)動(dòng)態(tài)查詢余額
- ·如何用sql語句添加刪除主鍵?
- ·SQL中語法錯(cuò)誤(操作符丟失)問題
- ·用Between 和 iif 實(shí)現(xiàn)靈活的查詢
- ·如何提取分組取前N條的記錄
- ·DELPHI中操作ACCESS數(shù)據(jù)庫
- ·Partition,讓你的分組統(tǒng)計(jì)更加得心應(yīng)手