1. สถานะของนามแฝงฐานข้อมูล
BDE ฐานข้อมูลในตัวของ Delphi (Borland Database Engine) ให้ฟังก์ชั่นการประมวลผลฐานข้อมูลที่ทรงพลังและ BDE เป็นส่วนสำคัญของฟังก์ชั่นฐานข้อมูลของ Delphi
การใช้ฐานข้อมูลท้องถิ่นที่ใช้โดยเครื่องสแตนด์อโลนเท่านั้นเป็นตัวอย่างโปรแกรม Delphi สามารถควบคุมการเข้าถึงข้อมูลฐานข้อมูลได้โดยตรงผ่าน BDE การควบคุมการเข้าถึงนี้ขึ้นอยู่กับการกำหนดค่าของพารามิเตอร์ BDE ตารางฐานข้อมูลเฉพาะ ดังนั้นเมื่อสร้างตารางฐานข้อมูลจะต้องมีสองกระบวนการ: หนึ่งคือการตรวจสอบว่านามแฝงฐานข้อมูลที่เกี่ยวข้องมีอยู่ผ่าน BDE หรือไม่ (เช่นฐานข้อมูล) ในนามแฝงฐานข้อมูล (เช่นฐานข้อมูล) ไม่ว่าจะมีตารางฐานข้อมูลที่จำเป็นต้องจัดตั้งขึ้นหรือไม่หากไม่มีอยู่จริง ด้วยวิธีนี้ข้อมูลในตารางดั้งเดิมได้รับการปกป้องจากการสูญเสีย
2. องค์ประกอบเซสชัน: อินเทอร์เฟซระหว่างโปรแกรมฐานข้อมูล Delphi และ BDE
Delphi จัดเตรียมองค์ประกอบเซสชันสำหรับแอปพลิเคชันฐานข้อมูลโดยอัตโนมัติซึ่งเป็นคีย์ของอินเทอร์เฟซของแอปพลิเคชันด้วย BDE ด้านล่างนี้เป็นคำอธิบายต้นแบบของกระบวนการหลายอย่างขององค์ประกอบเซสชันเกี่ยวกับอินเตอร์เฟส BDE
1. GetAliasNames (รายการ: TSTRINGS);
2.Addstandardalias (ชื่อ const, Path, DefaultDriver: String); ตัวอย่างเช่นเพิ่มนามแฝงชื่อ CNTSSAMP ไดรเวอร์ฐานข้อมูลเริ่มต้นคือความขัดแย้งและเส้นทางการจัดเก็บคือ C:/DELPHP11:
Session.Addstandardalias (CNTSSAMP, C:/DELPHP11, Paradox);
3. GetTableNames (const databasename, รูปแบบ: String; ส่วนขยาย, SystemTables: บูลีน; รายการ: tStrings);
4.SaveConFigFile;
นอกจากนี้ให้ใช้ค่าของ list.indexof (สตริงที่ระบุ) เพื่อตรวจสอบว่ามีสตริงที่จำเป็นในรายการสตริงเพื่อพิจารณาว่าควรมีการกำหนดนามแฝงฐานข้อมูลและตารางฐานข้อมูลใหม่หรือไม่
3. ตัวอย่าง
เขียนรหัสต่อไปนี้ในเหตุการณ์ Form1.FormCreate CNTSSAMP
ขั้นตอน TFORM1.FormCreate (ผู้ส่ง: tobject
วาจา
AP: TSTRINGLIST;
คำตอบ: จำนวนเต็ม;
เริ่ม
AP: = tStringList.create;
session.getaliasnames (AP);
if (ap.indexof (CNTSSAMP) =-1) จากนั้น {ตรวจสอบว่านามแฝงมีอยู่}
เริ่ม
คำตอบ: = application.messagebox (นามแฝง CNTSSAMP ไม่มีอยู่ตอนนี้มันถูกสร้างขึ้นหรือไม่?
ถ้าตอบ = idCancel แล้ว
เริ่ม
AP.Free;
ออก;
จบ;
Session.Addstandardalias (CNTSSAMP, C:/DELPHP11, Paradox);
Session.saveConfigFile;
จบ ;
ap.clear; {รับรายชื่อตารางทั้งหมดในนามแฝง cngzsamp}
Session.getTablenames (CNTSSAMP ,, FALSE, FALSE, AP);
if (ap.indexof (tsk) =-1) จากนั้น {ตรวจสอบว่าตารางมีอยู่}
เริ่ม
คำตอบ: = application.messagebox (ตาราง TSK ไม่มีอยู่ในนามแฝง CNTSSAMP ตอนนี้มันถูกสร้างขึ้นหรือไม่? หน้าต่างข้อมูลตาราง MB - OkCancel);
ถ้าตอบ = idCancel แล้ว
AP.Free;
ออก;
จบ;
ด้วยตารางที่ 1 ทำ
เริ่ม
ใช้งาน: = false;
Databasename: = CNTSSAMP;
Tablename: = tsk; {ชื่อตาราง}
tableType: = ttparadox; {ประเภทฐานข้อมูล}
กับ FieldDefs ทำ
เริ่ม {เพิ่มฟิลด์}
ชัดเจน;
เพิ่ม (sh, ftstring, 30, false);
เพิ่ม (sm, ftstring, 30, false);
เพิ่ม (CBS, ftString, 20, false);
เพิ่ม (CBRQ, FTDATE, 0, FALSE);
เพิ่ม (ys, ftinteger, 0, false);
จบ;
ด้วย DODINDDEFS DO
เริ่ม {เพิ่มดัชนี}
ล้าง; {สร้างดัชนีหลักตามหมายเลขหนังสือ}
เพิ่ม (shsy, sh, [primary, ixunique]);
จบ;
createTable; {สร้างตาราง}
จบ;
จบ ;
ap.free; {ตัวแปรปล่อย AP}
จบ;