按功能表 "Component" 選項
==> Import Component
圖一
圖二
Pallette Page 是選擇建立好的元件,要放在工具盤的哪個頁籤,我選擇 dbGo。
Unit Dir Name 是檔案存放處,我選擇放在 C:\Embarcadero\RAD Studio\版本\Imports\,純粹是基於個人喜好。
按一下 Class Name(s) 最右方的 ... 鈕,出現圖四的畫面。
圖三
將各個 class 的 Class Name 都插入 ADOX,例如:Table ==> TADOXTable,TColumn ==> TADOXColumn,TIndex ==> TADOXIndex,TKey ==> TADOXKey,TGroup ==> TADOXGroup,TUser ==> TADOXUser,TCatalog ==> TADOXCatalog。
選擇存放位置並輸入 package name
圖六
圖七

關閉、重新啟動 Delphi,再去看 dbGo 頁籤,就會看到多了 7 個元件了。
新建一個專案,在 Form 上放置 2 個 TButton,1 個 TADOXCatalog,1 個 TADOConnection,1 個 TADOCommand。
Button1 的程式如下:
- procedure TForm1.Button1Click(Sender: TObject);
- var
- DataSource : string;
- dbName : string;
- begin
- dbName := 'd:\test.mdb';
- DataSource := 'Provider=Microsoft.Jet.OLEDB.4.0'
- + ';Data Source=' + dbName
- + ';Jet OLEDB:Engine Type=4';
- ADOXCatalog1.Create1(DataSource);
- end;
Engine type 4 是建立 Access 97 的資料庫, type 5 是 Access 2000。
當您按下 Button1,就會看到在 D:\ 下產生了 test.mdb,這只是個空的 mdb,並且本段程式並不會檢查 mdb 檔是否已建立,所以若您再按一次 Button1,會出現錯誤訊息 "資料庫已存在"。
在 Button2 寫入新增資料表的程式,並為資料表建立關聯:
- procedure TForm1.Button2Click(Sender: TObject);
- var
- DataSource : string;
- cs : string;
- begin
- // 連線 test 資料庫
- DataSource := 'Provider=Microsoft.Jet.OLEDB.4.0'
- + ';Data Source=d:\test.mdb'
- + ';Persist Security Info=False';
- ADOConnection1.ConnectionString := DataSource;
- ADOConnection1.LoginPrompt := False;
- ADOCommand1.Connection := ADOConnection1;
- // 新建資料表 types
- cs := 'CREATE TABLE types (typename TEXT(50))';
- ADOCommand1.CommandText := cs;
- ADOCommand1.Execute;
- // 新建資料表 authors
- cs := 'CREATE TABLE authors ('
- + 'authorname TEXT(50),'
- + 'email TEXT(50),'
- + 'web TEXT(50))';
- ADOCommand1.CommandText := cs;
- ADOCommand1.Execute;
- // 建立資料表 types 的主鍵欄
- cs := 'CREATE INDEX idxPrimary '
- + 'ON types (typename) WITH PRIMARY';
- ADOCommand1.CommandText := cs;
- ADOCommand1.Execute;
- // 建立資料表 authors 的主鍵欄
- cs := 'CREATE INDEX idxPrimary '
- + 'ON Authors (authorname) WITH PRIMARY';
- ADOCommand1.CommandText := cs;
- ADOCommand1.Execute;
- // 關聯資料表
- cs := 'CREATE TABLE Applications ('
- + ' Name TEXT(50),'
- + ' Description TEXT(50),'
- + ' Author TEXT(50) CONSTRAINT idxauthor '
- + 'REFERENCES Authors (authorname),'
- + ' Type TEXT(50) CONSTRAINT idxtype '
- + 'REFERENCES Types (typename),'
- + ' [Size] FLOAT,'
- + ' Cost CURRENCY,'
- + ' DateUpl DATETIME,'
- + ' Picture LONGBINARY)';
- ADOCommand1.CommandText := cs;
- ADOCommand1.Execute;
- end;
沒有留言:
張貼留言