一、通過ole方式建立
相信各位都用通過ole方式訪問word、excel檔案的經歷,具體我不說太多,直接把具體**寫出來就完了
在引用部分加入:
uses comobj;
實現部分:
procedure tformoffice.bitbtn1click(sender: tobject);
varcreateaccess:olevariant;
begin
createaccess:=createoleobject('adox.catalog');
createaccess.create('provider=microsoft.jet.oledb.4.0;data source=c:\aceco.mdb');
end;
說明:1、在c:\下建立aceco.mdb;
2、是access2000格式,用access97打不開;
3、系統需安裝mdac,這是好訊息,客戶不需安裝access也可以
二、通過dbengine建立
這才是關鍵中的關鍵,是我一定要寫出來的原因!
各位是否還記得安裝delphi的時候,如果你選擇自定義安裝(我一般用delphi寫控制項,所以當然是越小越好),會有很多安裝選項,讓你選擇access97或access2000,還有mdac等,問題就在這裡!delphi5.0中早就封裝了現成的類,只是大家都沒有注意而已它位於:
$delphi5\imports
目錄下!
其中有dao97.dcu檔案,它是通過dao350.dll來完成的,其中的定義部分和dao350.dll如出一轍!ok,到現在,所有的一切都明白了(可惜我花了一天時間!)。那麼具體實現起來就太方便了,具體過程如下:
在引用部分加入:
uses dao97;
實現部分:
procedure tformoffice.bitbtn4click(sender: tobject);
varengine:dbengine;
begin
engine:=codbengine.create;
engine.createdatabase('c:\newaccess.mdb',';langid=0x0804;cp=936;country=0;',dbencrypt);
end;
說明:1、在c:\下建立newaccess.mdb;
2、語言國家是簡體中文;
3、壓縮整理資料庫用engine.compactdatabase('c:\invoice.mdb','c:\god.mdb','',0,'');就是將c:\invoice.mdb壓縮整理成c:\god.mdb,剩下的只是將c:\invoice.mdb刪除(deletefile('c:\invoice.mdb');),然後將c:\god.mdb重新命名(renamefile('c:\god.mdb','c:\invoice.mdb');)即可。
三、通過access97建立,然後拷貝
四、通過odbc的api函式建立
補充:1、通過ole方式建立時如果是access97,那麼可能是createaccess.create('provider=microsoft.jet.oledb.3.5.1;data source=c:\aceco.mdb');,嘿嘿,小弟對vb實在是一竅不通,還望各位再測試一下(可以需要mdac比較低的版本)。
2、關於createdatabase中國家的設定:
module languageconstants; // dao predefined constants.
dblangarabic = ;langid=0x0401;cp=1256;country=0;
dblangczech = ;langid=0x0405;cp=1250;country=0;
dblangdutch = ;langid=0x0413;cp=1252;country=0;
dblanggeneral = ;langid=0x0409;cp=1252;country=0;
dblanggreek = ;langid=0x0408;cp=1253;country=0;
dblanghebrew = ;langid=0x040d;cp=1255;country=0;
dblanghungarian = ;langid=0x040e;cp=1250;country=0;
dblangicelandic = ;langid=0x040f;cp=1252;country=0;
dblangnordic = ;langid=0x041d;cp=1252;country=0;
dblangnorwdan = ;langid=0x0414;cp=1252;country=0;
dblangpolish = ;langid=0x0415;cp=1250;country=0;
dblangcyrillic = ;langid=0x0419;cp=1251;country=0;
dblangspanish = ;langid=0x040a;cp=1252;country=0;
dblangswedfin = ;langid=0x040b;cp=1252;country=0;
dblangturkish = ;langid=0x041f;cp=1254;country=0;
dblangjapanese = ;langid=0x0411;cp=932;country=0;
dblangchinesesimplified = ;langid=0x0804;cp=936;country=0;
dblangchinesetraditional = ;langid=0x0404;cp=950;country=0;
dblangkorean = ;langid=0x0412;cp=949;country=0;
dblangthai = ;langid=0x041e;cp=874;country=0;
dblangslovenian = ;langid=0x0424;cp=1250;country=0;
3、關於createdatabase中資料庫版本資訊
enum databasetypeenum;
dbversion10 = 1;
dbencrypt = 2;
dbdecrypt = 4;
dbversion11 = 8;
dbversion20 = 16;
dbversion30 = 32;
4、其它方面,希望各位再加補充。
方法一示例:通過ole方式建立資料庫和表。procedure tform1.createdb(dbname: string);
var dbnew:olevariant;
begin
if fileexists(dbname) then
begin
+ dbname + ' 已存在!'+ #13#10 +'是否覆蓋?'),
'警告',mb_yesno + mb_iconwarning) = idno then exit;
if not deletefile(dbname) then
begin
pchar('不能刪除資料庫:' + dbname),
'錯誤',mb_ok + mb_iconerror);
exit;
end;
end;
dbnew:=createoleobject('adox.catalog');
dbnew.create('provider=microsoft.jet.oledb.4.0;data source=' + dbname);
adoq1.connectionstring:='provider=microsoft.jet.oledb.4.0;data source='
+dbname+';persist security info=false';
adoq1.close;
adoq1.sql.text := 'create table 測試 (id int not null,'
+'姓名 char(8) not null,年齡 int not null)';
adoq1.execsql;
adoq1.close;
adoq1.sql.text := 'create unique index idindex on 測試 (id)';
adoq1.execsql;
adoq1.close;
adoq1.sql.text := 'create index xmindex on 測試 (姓名)';
adoq1.execsql;
adoq1.close;
adoq1.sql.text := 'create index nlindex on 測試 (年齡)';
adoq1.execsql;
pchar('資料庫:' + dbname+'建立完成'),
'ok',mb_ok + mb_iconwarning);
end;
//建立資料庫dbname並且建立表:測試。
DELPHI動態建立窗體
第一種方式 procedure tform1.btn1click sender tobject begin try showmodal finally free end end 第二種方式 procedure tform1.btn2click sender tobject begin if not ...
在VC中用ADO動態建立帶密碼的Access資料庫
本文主要介紹了動態建立access資料庫和設定密碼的方法.例如 假設一位使用者的歷史資訊需要存放到本地.我們有許多的使用者都需要這樣的功能.那麼手動建立資料庫是很麻煩的.於是我們可以考慮動態的來新增.但同時你又希望不被他人輕易看見.此時需要設定乙個密碼.那麼這也就是本文要做的事情.我們首先要建立vc...
在VC中用ADO動態建立帶密碼的Access資料庫
首先要建立vc的工程,開啟stdafx.h標頭檔案.在其中加入如下兩句話 import c program files common files system ado msadox.dll import c program files common files system ado msado15....