ทั้งการควบคุมตาราง (ส่วนประกอบ) และการควบคุมแบบสอบถามใน Delphi จำเป็นต้องมีคุณสมบัติฐานข้อมูล คุณสมบัติ DatabasEname สามารถใช้เพื่อระบุเส้นทางตารางข้อมูลที่อ้างอิงโดยตัวควบคุม มีสองวิธีในการตั้งค่าพา ธ สำหรับฐานข้อมูลคุณสมบัติ: วิธีแรกคือการป้อนเส้นทางโดยตรงที่ตารางข้อมูลอยู่และวิธีอื่นคือการใช้นามแฝงฐานข้อมูล (นามแฝง) ใน Delphi นามแฝงฐานข้อมูลถูกตั้งค่าในเอ็นจินฐานข้อมูล (BDE) และนามแฝงสอดคล้องกับเส้นทางไฟล์ คุณสามารถกำหนดนามแฝงดังนี้: นามแฝงคือการแมปของเส้นทางไฟล์และเป็นตัวย่อของเส้นทางไฟล์ ดังนั้นการใช้นามแฝงฐานข้อมูลในฐานข้อมูลคุณสมบัติและการใช้พา ธ ไฟล์นั้นเหมือนกันซึ่งทั้งสองอย่างนี้ทำหน้าที่เป็นเส้นทางรูทสำหรับการค้นหาตารางข้อมูล อย่างไรก็ตามในการออกแบบแอปพลิเคชันฐานข้อมูลหากมีการควบคุมตารางและการควบคุมแบบสอบถามจำนวนมากที่เกี่ยวข้องจากนั้นการใช้นามแฝงไปยังเส้นทางไฟล์อ้างอิงมีประสิทธิภาพมากสะดวกและไม่เกิดข้อผิดพลาด เหตุผลที่ชัดเจน: ในอีกด้านหนึ่งนามแฝงสามารถเข้าถึงได้โดยตรงในรายการโดยไม่ต้องใช้อินพุตจากแป้นพิมพ์เช่นเส้นทางไฟล์; .
นอกจากนี้คำสั่ง SQL ของคุณสมบัติ tablename ของการควบคุมตารางและการควบคุมแบบสอบถามสามารถมีข้อมูลเส้นทางของตารางข้อมูล เนื่องจากสถานการณ์ของการสืบค้นและการควบคุมตารางมีความคล้ายคลึงกันมากต่อไปนี้เป็นเพียงคำอธิบายของการควบคุมตาราง ข้อมูลเส้นทางนี้สามารถเป็นเส้นทางที่สมบูรณ์หรือส่วนที่ตามมาของเส้นทางที่สมบูรณ์ ตัวอย่างเช่นเมื่อกำหนดคุณสมบัติ tablename ของการควบคุมตารางคุณสามารถกำหนด c:/delphi/demo1/data/สมาชิกให้กับมันหรือคุณสามารถกำหนดข้อมูล/สมาชิกให้กับมัน นั่นคือสามารถใช้เส้นทางสัมบูรณ์หรือสามารถใช้เส้นทางสัมพัทธ์ได้
เพื่ออำนวยความสะดวกในการพอร์ตโปรแกรมคุณมักจะต้องระบุเส้นทางของตารางข้อมูลในฐานข้อมูลอสังหาริมทรัพย์เท่านั้นและไม่จำเป็นต้องรวมข้อมูลเส้นทางใน TableName โดยทั่วไปอย่าระบุเส้นทางเต็มในชื่อ TableName
การโยกย้ายแอปพลิเคชันฐานข้อมูลเป็นปัญหาสำคัญ เนื่องจากในแอปพลิเคชันฐานข้อมูลเพื่อเข้าถึงฐานข้อมูลหรือตารางข้อมูลพา ธ ไปยังไฟล์ข้อมูลจะต้องมีส่วนร่วม โดยทั่วไปแล้วแอปพลิเคชันฐานข้อมูลจะต้องถูกพอร์ตไปยังเครื่องอื่น ๆ เพื่อใช้หลังจากการพัฒนาดังนั้นเส้นทางไฟล์ข้อมูลเมื่อแอปพลิเคชันฐานข้อมูลกำลังทำงานมีแนวโน้มที่จะแตกต่างจากเวลาพัฒนา ดังนั้นเส้นทางของไฟล์ข้อมูลจะต้องได้รับการจัดการอย่างมีประสิทธิภาพสำหรับการย้ายระบบ ต่อไปนี้เป็นสามวิธีในการจัดการพา ธ ไฟล์ข้อมูล 1. สร้างไฟล์ข้อมูลในไดเรกทอรีย่อยของไดเรกทอรีที่แอปพลิเคชันอยู่ กระบวนการเฉพาะคือ (1) เพื่อความสะดวกในการออกแบบสามารถใช้นามแฝงฐานข้อมูลระหว่างการออกแบบและนามแฝงฐานข้อมูลชี้ไปที่เส้นทางที่แอปพลิเคชันตั้งอยู่ เพิ่มชื่อ SubPath ลงในคุณสมบัติ tablename ของการควบคุมตาราง (2) ก่อนที่จะออกแอปพลิเคชันให้ตั้งค่าการควบคุมตารางทั้งหมดและแอตทริบิวต์พื้นที่สอบถามที่ใช้งานอยู่เป็นเท็จและลบอักขระทั้งหมดในฐานข้อมูลแอตทริบิวต์ (เช่นว่างเปล่า) โดยค่าเริ่มต้นไดเรกทอรีปัจจุบันที่แอปพลิเคชันกำลังทำงานอยู่คือไดเรกทอรีที่แอปพลิเคชันอยู่ หากกระบวนการเช่น CHDIR ไม่ได้ถูกเรียกในแอปพลิเคชันเพื่อเปลี่ยนไดเรกทอรีปัจจุบันไม่จำเป็นต้องดำเนินการขั้นตอนที่สามมิฉะนั้นดำเนินการประมวลผลขั้นตอนที่สาม
(3) ในเหตุการณ์ onCreate ของแบบฟอร์มที่ใช้การควบคุมตารางและการควบคุมการสืบค้นกำหนดเส้นทางที่แอปพลิเคชันอยู่ในแต่ละการควบคุมตารางและการควบคุมการสืบค้นในแบบฟอร์ม ตารางที่ 1.Databasename: = ExtractFilePath (Application.exename); ใช้ไฟล์การกำหนดค่าเพื่อจัดเก็บเส้นทางข้อมูล ในอนาคตข้อมูลเส้นทางจะถูกอ่านออกจากไฟล์การกำหนดค่า การอ่านและการเขียนไฟล์การกำหนดค่าถูกนำมาใช้โดยใช้วิธีการที่จัดทำโดยคลาส Tinifile คลาส Treginifile และคลาส Tregistry แนวคิดพื้นฐานของวิธีนี้คือ: (1) เพื่อความสะดวกในการออกแบบให้ใช้นามแฝงฐานข้อมูลระหว่างการออกแบบ (2) ก่อนที่จะออกแอปพลิเคชันให้ตั้งค่าการควบคุมตารางทั้งหมดและแอตทริบิวต์พื้นที่สอบถามที่ใช้งานอยู่เป็นเท็จและลบอักขระทั้งหมดในฐานข้อมูลแอตทริบิวต์ (เช่นว่างเปล่า)
(3) ในเหตุการณ์ onCreate ของแบบฟอร์มที่ใช้การควบคุมตารางและการควบคุมการสืบค้นกำหนดเส้นทางที่แอปพลิเคชันจะอยู่ในการควบคุมตารางและการควบคุมแบบสอบถามในแบบฟอร์ม
table1.databasename: = ExtractFilePath (Application.exename);
3. ใช้นามแฝงฐานข้อมูลเพื่อจัดเก็บพา ธ ฐานข้อมูล
ในการใช้เซสชันเพื่อสร้างนามแฝงฐานข้อมูลแบบไดนามิกคุณจะต้องเพิ่มส่วนประกอบเซสชัน 1 ในแบบฟอร์ม สิ่งที่เราจะใช้เมื่อการสร้างและลบฐานข้อมูลแทนฐานข้อมูลเป็นตัวแปรเซสชันทั่วโลกที่กำหนดโดยหน่วยแทนที่จะเป็นส่วนประกอบเซสชัน 1 ที่เพิ่มลงในแบบฟอร์ม ในระหว่างการสร้างระบบธนาคารทดสอบเพื่อป้องกันความสับสนเราได้ลบองค์ประกอบเซสชั่น 1 ในแบบฟอร์มซึ่งไม่มีผลต่อการใช้งานฟังก์ชั่น
รหัสต่อไปนี้แสดงวิธีการสร้างนามแฝงชื่อ "สมาชิก" เส้นทางฐานข้อมูลคือ "E:/สมาชิก" และประเภทฐานข้อมูลของมันคือความขัดแย้ง
session.configmode: = cmall; // ระบุโหมดการกำหนดค่าของเซสชัน
Session.addstandardalias ('Net', 'E:/Subscriber', 'Paradox');
หากคุณต้องการลบนามแฝงคุณต้องตรวจสอบว่ามีนามแฝงหรือไม่ รหัสต่อไปนี้แสดงวิธีการตรวจสอบว่าฐานข้อมูลนามแฝง "สมาชิก" มีอยู่หรือไม่และถ้าเป็นเช่นนั้นให้ลบออก
กำหนดตัวแปร: var stralias: tStringList;
รหัส: stralias: = tstringlist.create; // สร้างอินสแตนซ์ของคลาส tStringList
session.getaliasnames (stralias); // รับนามแฝงฐานข้อมูลทั้งหมดในปัจจุบัน
// ค้นหาว่าสมาชิกมีอยู่หรือไม่
ถ้า (stralis.indexof ('สมาชิก') <> -1) แล้ว
เริ่ม
session.deletealias ('สมาชิก'); // ลบสมาชิกนามแฝงฐานข้อมูล
Session.saveConfigFile;
จบ;