亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Access > 正文

Delphi中的Access技巧集

2024-09-07 19:03:21
字體:
來源:轉載
供稿:網友

1、DELPHI中操作ACCESS數據庫(建立.mdb文件,壓縮數據庫)

以下代碼在WIN2K,D6,MDAC2.6下測試通過,編譯好的程序在WIN98第二版無ACCESS環境下運行成功。

以下為引用的內容:

//在之前uses ComObj,ActiveX
//聲明連接字符串
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;
//取得臨時文件名
var
SPath,Sfile&:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(PChar(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;
//壓縮與修復數據庫,覆蓋源文件
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;

//=============================================================================
// Procedure: ChangeDatabasePassword
// Author : ysai
// Date : 2003-01-27
// Arguments: AFileName,AOldPassWord,ANewPassWord:string
// Result : boolean
//=============================================================================
function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean;
//修改ACCESS數據庫密碼
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,AOldPassWord]),
format(SConnectionString,[STempFileName,ANewPassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;

2、ACCESS中使用SQL語句應注意的地方及幾點技巧,以下SQL語句在ACCESS XP的查詢中測試通過建表:

以下為引用的內容:
Create Table Tab1 (
ID Counter,
Name string,
Age integer,
[Date] DateTime);

技巧:

自增字段用 Counter 聲明。

字段名為關鍵字的字段用方括號[]括起來,數字作為字段名也可行。

建立索引:

下面的語句在Tab1的Date列上建立可重復索引

Create Index iDate ON Tab1 ([Date]);

完成后ACCESS中字段Date索引屬性顯示為 - 有(有重復)。

下面的語句在Tab1的Name列上建立不可重復索引

Create Unique Index iName ON Tab1 (Name);

完成后ACCESS中字段Name索引屬性顯示為 - 有(無重復)。

下面的語句刪除剛才建立的兩個索引

Drop Index iDate ON Tab1;

Drop Index iName ON Tab1;

ACCESS與SQLSERVER中的UPDATE語句對比:

SQLSERVER中更新多表的UPDATE語句:

以下為引用的內容:
UPDATE Tab1
SET a.Name = b.Name
FROM Tab1 a,Tab2 b
WHERE a.ID = b.ID;

同樣功能的SQL語句在ACCESS中應該是

以下為引用的內容:
UPDATE Tab1 a,Tab2 b
SET a.Name = b.Name
WHERE a.ID = b.ID;

即:ACCESS中的UPDATE語句沒有FROM子句,所有引用的表都列在UPDATE關鍵字后。

上例中如果Tab2可以不是一個表,而是一個查詢,例:

以下為引用的內容:
UPDATE Tab1 a,(Select ID,Name From Tab2) b
SET a.Name = b.Name
WHERE a.ID = b.ID;

訪問多個不同的ACCESS數據庫-在SQL中使用In子句:

Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID;

上面的SQL語句查詢出當前數據庫中Tab1和db2.mdb(當前文件夾中)中Tab2以ID為關聯的所有記錄。

缺點-外部數據庫不能帶密碼。

補充:看到ugvanxk在一貼中的答復,可以用

Select * from [c:/aa/a.mdb;pwd=1111].table1;

ACCESS XP測試通過

在ACCESS中訪問其它ODBC數據源

下例在ACCESS中查詢SQLSERVER中的數據

以下為引用的內容:
SELECT * FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]

外部數據源連接屬性的完整參數是:

[ODBC;DRIVER=driver;SERVER=server;DATABASE=database;UID=user;PWD=password;]

其中的DRIVER=driver可以在注冊表中的

HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI/

中找到

異構數據庫之間導數據參見 碧血劍

ACCESS支持子查詢

ACCESS支持外連接,但不包括完整外部聯,如支持LEFT JOIN 或 RIGHT JOIN ,但不支持 FULL OUTER JOIN 或 FULL JOIN。

ACCESS中的日期查詢

注意:ACCESS中的日期時間分隔符是#而不是引號

Select * From Tab1 Where [Date]>#2002-1-1#;

在DELPHI中我這樣用

以下為引用的內容:
SQL.Add(Format(
'Select * From Tab1 Where [Date]>#%s#;',
[DateToStr(Date)]));

ACCESS中的字符串可以用雙引號分隔,但SQLSERVER不認,所以為了遷移方便和兼容,建議用單引號作為字符串分隔符。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美精品xxxx另类| 欧美激情乱人伦| 国内精品久久久久| 国产精品www色诱视频| 日本中文字幕不卡免费| 91亚洲永久免费精品| 国产精品美腿一区在线看| 亚洲色图综合网| 亚洲v日韩v综合v精品v| 最近2019中文字幕在线高清| 国产在线久久久| 中文日韩在线观看| 91精品在线观| 亚洲三级 欧美三级| 精品网站999www| 精品视频—区二区三区免费| 亚洲国产精品va在线看黑人| 亚洲精品久久久久久久久久久| 日本免费一区二区三区视频观看| 69国产精品成人在线播放| 成人乱人伦精品视频在线观看| 欧美激情视频网| 热久久这里只有| 国产精品对白刺激| 日韩高清a**址| 欧美性猛交xxxx乱大交蜜桃| 亚洲精品aⅴ中文字幕乱码| 久久伊人精品视频| 欧美老女人性视频| 国产精品视频区1| 欧美做受高潮1| 中文字幕欧美精品在线| 国产精品com| 国产一区二区在线免费视频| www.日本久久久久com.| 成人写真视频福利网| 少妇精69xxtheporn| 一区二区欧美亚洲| 亚洲v日韩v综合v精品v| 亚洲欧美一区二区三区在线| 日韩的一区二区| 另类图片亚洲另类| 久久99精品国产99久久6尤物| 91久久中文字幕| 成人一区二区电影| 精品在线欧美视频| 中文字幕免费国产精品| 日韩精品日韩在线观看| 九九精品视频在线观看| 九九九久久久久久| 欧美一级淫片丝袜脚交| 亚洲色图日韩av| 国产精品xxx视频| 最新中文字幕亚洲| 国产精品专区第二| 亚洲国产欧美久久| 色综合伊人色综合网| 欧美精品在线看| 国产成人精品免费久久久久| 中文字幕综合在线| 久久久久久久爱| 国产精品∨欧美精品v日韩精品| 亚洲欧美综合另类中字| 91久久精品国产| 黑人巨大精品欧美一区免费视频| 欧美激情成人在线视频| 亚洲mm色国产网站| 人九九综合九九宗合| 亚洲毛片在线观看.| 欧美黄色片在线观看| 国产午夜精品视频| 亚洲精品国产精品国自产观看浪潮| 国产在线观看一区二区三区| 亚洲午夜久久久久久久| 精品亚洲一区二区三区四区五区| 精品一区二区三区四区| 欧美日韩高清在线观看| 欧美亚洲激情视频| 国产精品久久久久久五月尺| 国产a∨精品一区二区三区不卡| 欧美日产国产成人免费图片| 激情懂色av一区av二区av| 亚洲精品aⅴ中文字幕乱码| 中文在线资源观看视频网站免费不卡| 久久久91精品国产一区不卡| 欧美激情伊人电影| www日韩中文字幕在线看| 国产婷婷成人久久av免费高清| 欧美极品少妇xxxxⅹ免费视频| 欧洲亚洲免费在线| 精品性高朝久久久久久久| 国产91精品青草社区| 97免费在线视频| 日本国产欧美一区二区三区| 中文字幕日韩专区| 欧美午夜精品久久久久久人妖| 日韩亚洲综合在线| 欧美性猛交xxxx黑人猛交| 亚洲视频欧洲视频| 日韩一区二区三区国产| 国产一区二区三区18| 亚洲福利影片在线| www.亚洲人.com| 97不卡在线视频| 中文字幕一区日韩电影| 日本精品久久久久久久| 在线成人激情视频| 欧美激情一区二区三区高清视频| 国产a∨精品一区二区三区不卡| 日韩色av导航| 国内揄拍国内精品| 中文字幕精品在线视频| 丝袜美腿亚洲一区二区| 伊人久久五月天| 色av吧综合网| 亚洲最大av网站| 欧美性xxxx在线播放| 国产精品丝袜高跟| 国产在线观看不卡| 亚洲视频专区在线| 国产欧美日韩视频| 98精品国产自产在线观看| 国产精品日韩在线一区| 91av免费观看91av精品在线| 一区二区三区日韩在线| 精品日本美女福利在线观看| 影音先锋欧美在线资源| 国产女精品视频网站免费| 亚洲欧美激情在线视频| 97成人在线视频| 国产午夜精品美女视频明星a级| 精品中文字幕在线2019| 91精品在线影院| 欧美日本啪啪无遮挡网站| 欧美最猛性xxxx| 欧美精品videos另类日本| 日韩精品视频免费在线观看| 一区二区三区国产视频| 91精品在线播放| 国产午夜精品视频免费不卡69堂| 欧美性精品220| 日韩在线观看免费| 欧美韩国理论所午夜片917电影| 亚洲成色777777在线观看影院| 久久视频精品在线| 欧美成人精品h版在线观看| 97在线精品国自产拍中文| 色播久久人人爽人人爽人人片视av| 国产精品午夜一区二区欲梦| 人九九综合九九宗合| 久操成人在线视频| 国内精品久久久久久久| 青草青草久热精品视频在线观看| 国产精品扒开腿做| 情事1991在线| 超薄丝袜一区二区| 亚洲剧情一区二区| 5566日本婷婷色中文字幕97| 欧美日韩国产综合新一区| 日韩成人中文字幕在线观看| 成人中心免费视频| 色www亚洲国产张柏芝| 日韩成人av在线| 久久人人爽亚洲精品天堂|