按功能表 "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;
沒有留言:
張貼留言