1. إنشاء جدول مؤقت
إدخال البيانات هو رابط لا مفر منه في تطوير برامج قاعدة البيانات. في بنية العميل/الخادم ، قد يتعين على العميل إدخال مجموعة من البيانات قبل إرسالها إلى قاعدة بيانات الخادم الخلفية ، مسح البيانات بعد إرسالها. فوائد هذه الطريقة هي: تحسين كفاءة المدخلات وتقليل عبء الشبكة.
نظرًا لأن كمية البيانات التي يدخلها المستخدم في وقت واحد تكون صغيرة بشكل عام (لا تزيد عن بضع مئات من السجلات) ، يمكن بناء الجداول المؤقتة في الذاكرة ، مما يجعل المعالجة أسرع.
الطريقة 1: استخدام التحكم في الاستعلام (tquery)
الخطوة 1: ضع التحكم في الاستعلام (tquery) على النموذج وقم بتعيين جدول البيانات المتصل.
الخطوة 2: جعل tquery.
Tquery
الخطوة 3: أضف a endatement بعد بيان SQL الأصلي ، واطلب أن تكون نتيجة استعلام SQL فارغة بعد إضافة هذا عند استبدالها.
على سبيل المثال:
حدد biolife. ″ الأنواع لا ″ ، الفئة ، common_name ، biolife. ″ اسم الأنواع ″ ، biolife
من ″ biolife.db ″ biolife
حيث biolife.category = ′ a ′ و biolife.category = ′ b ′
وبهذه الطريقة ، تم إنشاء الجدول المؤقت.
الطريقة 2: إنشاء جداول مؤقتة باستخدام الرمز
الرمز كما يلي:
وظيفة CreatableInmemory (const afielddefs: tfielddefs): tdataset ؛
var
إغراء: tclientdataset ؛
يبدأ
إغراء: = لا شيء ؛
النتيجة: = لا شيء ؛
إذا كان AfieldDefs $#@60 ؛ $#@62 ؛ nil ثم
يبدأ
يحاول
temptable: = tclientDataset.create (application) ؛
temptable.fielddefs.assign (AfieldDefs) ؛
temptable.createdataset ؛
النتيجة: = (Temptable as tdataset) ؛
يستثني
إذا كانت الإغراء $#@60 ؛ $#@62 ؛ لا شيء
temptable.free ؛
النتيجة: = لا شيء ؛
يرفع؛
نهاية
نهاية
نهاية؛
في البرنامج ، استخدمه على النحو التالي:
الإجراء tform1.button1click (المرسل: tobject) ؛
var
adataset: tdataset ؛
يبدأ
adataset: = tdataset.create (الذات) ؛
مع adataset.fielddefs تفعل
يبدأ
إضافة (اسم "، ftstring ، 30 ، خطأ) ؛
إضافة (′ ue ′ ، ftinteger ، 0 ، false) ؛
نهاية؛
مع DataSource1 تفعل
يبدأ
DataSet: = CreatableInMemory (adataset.fieldDefs) ؛
Dataset.Open ؛
نهاية؛
adataset.free ؛
نهاية؛
إنشاء الجدول المؤقت اكتمل.
الطريقة 1 بسيطة للاستخدام ، ولكن نظرًا لاستخدام التحكم في الاستعلام للاستعلام عن قاعدة بيانات الواجهة الخلفية للخادم عند مسح البيانات ، تكون السرعة أبطأ قليلاً ، وهي غير مناسبة للمواقف التي يتم فيها تجميع كل حقل في جدول مؤقت معًا بواسطة عدة بيانات حقول الجدول. تحتوي الطريقة 2 على مجموعة واسعة من التطبيقات والسرعة السريعة ، ولكنها تتطلب كتابة رمز. (طريقة استخدام TfieldDefs في الكود بسيطة للغاية ، انظر مساعدة Delphi عبر الإنترنت).
2. قم بتكوين محرك البيانات (BDE ، SQL Link)
عند توزيع برامج قاعدة البيانات ، تحتاج إلى حمل محرك بيانات (BDE ، SQL Link) ، وبعد أن يقوم العميل بتثبيت البرنامج ، تحتاج أيضًا إلى تكوين محرك بيانات ، مثل اسم المستخدم وكلمة المرور (كلمة المرور) ، إلخ. إذا تم تكوينها يدويًا ، فإن عبء العمل كبير نسبيًا (اعتمادًا على عدد العملاء).
[idapi alias]
useName = sysdba
كلمة المرور = MasterKey
بعد تثبيت البرنامج ، يتم تكوين محرك البيانات تلقائيًا.
3. استخدم الوظائف في قاعدة بيانات interbase
قد يشعر المبرمجون بأنهم غير مريحين (أربعة فقط) عند استخدام Interbase كقاعدة بيانات خلفية عندما يوفرون وظائف قليلة جدًا (أربعة فقط) ولا يمكنها كتابة الإجراءات المخزنة المعقدة بسهولة. لا يمكن لـ Interbase نفسها كتابة وظائف ، ولكن يمكنها استخدام وظائف خارجية (تسمى الوظائف في DLL). يوضح المثال التالي كيفية إعلان وظيفة Sentrst في interbase.
إعلان الوظيفة الخارجية
cstring (80) ، smallint ، smallint
إرجاع Cstring (80)
enter_point ″ ib_udf_substr ″ module_name ″ ib_udf ″
حيث: module_name هو اسم DLL و entry_point هو اسم الوظيفة.
يمكن استخدامه بعد الإعلان ، على سبيل المثال:
حدد Sentstr (البلد)
من البلد
يستخدم هذا المثال قاعدة بيانات iBlocal التي تأتي مع تثبيت Delphi. يمكن للمستخدمين أيضًا كتابة وظائف أنفسهم لتوسيع نطاقها. لمزيد من المحتوى ، يرجى الاطلاع على موضوعات المقالة المتعلقة بقاعدة البيانات ، أو