1. Status alias database
Mesin basis data bawaan Delphi BDE (Borland Database Engine), menyediakan fungsi pemrosesan basis data yang kuat, dan BDE adalah bagian inti dari fungsi database Delphi.
Mengambil basis data lokal yang hanya digunakan oleh mesin yang berdiri sendiri sebagai contoh, program Delphi dapat secara langsung mengontrol akses data basis data melalui BDE. Kontrol akses ini didasarkan pada konfigurasi parameter BDE. Tabel Basis Data tertentu. Oleh karena itu, saat membuat tabel basis data, harus ada dua proses: satu adalah untuk mendeteksi apakah alias database yang sesuai ada melalui BDE. (mis. DatabaseName) dalam alias database (mis. Nama Data) apakah ada tabel database yang perlu ditetapkan, jika tidak ada, itu akan ditetapkan. Dengan cara ini, data dalam tabel asli dilindungi dari kehilangan.
2. Komponen Sesi: Antarmuka Antara Program Database Delphi dan BDE
Delphi secara otomatis menyediakan komponen sesi untuk aplikasi basis data, yang merupakan kunci antarmuka aplikasi dengan BDE. Di bawah ini adalah deskripsi prototipe dari beberapa proses komponen sesi mengenai antarmuka BDE.
1.GetaliasNames (Daftar: TStrings); Simpan nama semua alias database dalam konfigurasi BDE saat ini dalam daftar string daftar.
2.addstandardalias (const name, path, defaultDriver: string); Misalnya, tambahkan alias bernama CNTSSAMP, driver database default adalah paradoks, dan jalur penyimpanan adalah C:/delphp11:
Session.addstandardalias (cntssamp, c:/delphp11, paradox);
3.GetTableNames (Const DataBasEname, Pattern: String; Extensions, SystemTable: Boolean; Daftar: TStrings);
4.SaveconfigFile;
Selain itu, gunakan nilai list.indexof (string yang ditentukan) untuk menentukan apakah ada string yang diperlukan dalam daftar string untuk menentukan apakah alias database baru dan tabel basis data harus ditetapkan.
3. Contoh
Tuliskan kode berikut dalam acara Form1.FORMCREATE. Cntssamp.
Prosedur TFORM1.FORMCREATE (Pengirim: Tobject
var
AP: TStringList; {Variabel StringList}
Jawaban: Integer;
Mulai
ap: = tStringList.create;
Session.getaliasnames (AP); {Dapatkan daftar alias}
if (ap.indexof (cntssamp) =-1) lalu {tentukan apakah alias ada}
Mulai
Jawaban: = application.messageBox (alias cntssamp tidak ada, apakah itu dibuat sekarang ?, jendela informasi bde, mb - okcancel); {tambahkan alias database bernama cngzsamp}
Jika Jawaban = IDCancel Lalu
Mulai
ap.free;
KELUAR;
akhir;
Session.addstandardalias (cntssamp, c:/delphp11, paradox);
Session.saveConfigFile;
akhir ;
ap.clear; {Dapatkan daftar semua nama tabel di alias cngzsamp}
Session.gettableNames (cntssamp ,, false, false, ap);
if (ap.indexof (tsk) =-1) lalu {tentukan apakah tabel ada}
Mulai
Jawaban: = Application.MessageBox (Tabel TSK tidak ada di alias CNTSSAMP, apakah itu dibuat sekarang?, jendela informasi tabel, MB - Okcancel);
Jika Jawaban = IDCancel Lalu
ap.free;
KELUAR;
akhir;
dengan Table1 lakukan
Mulai
Aktif: = false;
DataBasEname: = cntssamp; {database alias}
Tablename: = tsk; {nama tabel}
Tabletype: = TTParAdox;
dengan FieldDefs Do
mulai {tambahkan bidang}
Jernih;
Add (sh, ftstring, 30, false); {Book No. String (30)}
Add (sm, ftstring, 30, false);
Add (CBS, ftString, 20, false);
Add (cbrq, ftdate, 0, false);
Add (ys, ftinteger, 0, false); {page integer}
akhir;
dengan IndexDefs melakukannya
mulai {tambahkan indeks}
Clear; {Buat Indeks Utama dengan Buku Nomor Buku}
Tambahkan (shsy, sh, [primer, ixunique]);
akhir;
Createtable; {Buat tabel}
akhir;
akhir ;
ap.free;
akhir;