المؤلف: جاو سومي
طريقة بسيطة لتكوين محركات البيانات (BDE، SQL Link)
عند توزيع برنامج قاعدة البيانات، يجب حمل محرك البيانات (BDE، SQL Link)، وبعد تثبيت البرنامج على العميل، يجب تكوين محرك البيانات، مثل اسم المستخدم (اسم المستخدم)، وكلمة المرور (PassWord) ، إلخ. إذا كان التكوين اليدوي مطلوبًا، فسيكون عبء العمل كبيرًا نسبيًا في هذا الوقت، يمكننا استخدام InstallShield For Delphi لتنفيذ التكوين بسهولة. عند استخدام InstallShield For Delphi لإنشاء برنامج تثبيت، يوجد ملف نصي *.iwz في الدليل حيث يتم إنشاء برنامج التثبيت، وتحتاج فقط إلى إضافته يدويًا إلى جزء [IDAPI Alias]. على سبيل المثال:
[الاسم المستعار IDAPI]
اسم المستخدم=SYSDBA
كلمة المرور = المفتاح الرئيسي
بعد تثبيت البرنامج، يتم تكوين محرك البيانات تلقائيًا.
كيفية عمل شريط أزرار سريع
يمثل كل زر رسومي على شريط الأزرار السريعة وظيفة شائعة الاستخدام، وفي الوقت نفسه، يكون حجم هذه الأزرار الرسومية أكبر من الرموز العادية، ويمكن وضع رسومات أكبر وأكثر حيوية، ويمكن أيضًا إرفاق المطالبات القصيرة مفيد جدًا لـ إنه مفيد للمستخدمين لأداء الوظائف الأكثر استخدامًا. بناءً على الأسباب المذكورة أعلاه، تعتمد المزيد والمزيد من تطبيقات Windows شرائط الأزرار السريعة لتحسين واجهة التطبيق. عند البرمجة في دلفي، يستخدم المؤلف طريقتين مختلفتين لتنفيذ شريط أزرار سريع. تجمع هذه المقالة بين مثال لإنشاء شريط أزرار سريع مع مجموعتين من ستة أزرار وتسرد خطوات التصميم المحددة لهاتين الطريقتين.
1. طريقة توليد الجمع
(1) ضع كائن Panel1 في النموذج كحامل لزر الرسم.
(2) قم بتعيين سمة التسمية التوضيحية لـ Panel1 على فارغة، وسمة Align إلى alTop، واضبط ارتفاعها إلى الحجم المناسب.
(3) ضع ستة أزرار SpeedButton على اللوحة 1 (تم تحديد SpeedButton لأنه يحتوي على خصائص عائمة).
(4) ضع كائنين مشطوفين على اللوحة 1 واضبط موضعهما وحجمهما لفصل مجموعات الأزرار.
(5) اضبط حجم وموضع SpeedButton1 في اللوحة 1.
(6) حدد SpeedButton1 وقم بتعيين الخاصية Flat إلى True.
(7) انقر فوق زر القطع الصغير المطابق للسمة Glyph of SpeedButton1، وافتح نافذة PictureEditor، وحدد رمزًا يرمز إلى "الاستعلام". قم بتعيين الخاصية ShowHint على True وخاصية Hint على "Query".
(8) اتبع الخطوات من (5) إلى (7) لتعيين خصائص أزرار SpeedButton المتبقية.
بهذه الطريقة، يتم إكمال شريط الأزرار السريع. عند التشغيل، يتم عرض الأزرار السريعة بطريقة عائمة. عند تحريك الماوس فوقها، يتم عرض مخطط الزر ويتم عرض مطالبة صغيرة.
2. استعارة طريقة إنشاء شريط الأدوات
(1) ضع كائن ToolBar1 في النموذج.
(2) قم بتعيين خصائص EdgeBorders.ebLeft، وebTop، وebRight، وebButtom الخاصة بـ ToolBar1 على True؛ وقم بضبط حجم ToolBar1 على الحجم المناسب.
(3) حدد ToolBar1، وانقر بزر الماوس الأيمن فوق القائمة السريعة، ثم انقر فوق NewButton وNewSeparator على التوالي لإضافة ستة أزرار ToolButton وسطرين فاصلين.
(4) حدد أي زر ToolButton واضبط حجمه على الحجم المناسب، وسيتم أيضًا ضبط جميع أزرار الأدوات في نفس الوقت.
(5) قم بتعيين خاصية BorderWidth لـ ToolBar1 إلى 3 لضبط موضع ToolButton.
(6) ضع كائن ImageList1 في النموذج وقم بتعيين قيم خصائصه الارتفاع والعرض لاستيعاب الصور ذات الحجم الأكبر.
(7) انقر نقرًا مزدوجًا فوق ImageList1 وقم بتحميل ست صور على التوالي من خلال الزر "إضافة"، المطابق لأزرار الأدوات الستة في ToolBar1.
(8) قم بتعيين خاصية Images of ToolBar1 على ImageList1.
(9) قم بتعيين سمة ShowHint لأزرار الأدوات الستة على True، وقم بتعيين تلميح سمات المطالبة الصغيرة الخاصة بها.
(10) يمكنك أيضًا تعيين HotImages of ToolBar1 لتحديد مجموعة الصور عندما يشير الماوس إلى الزر.
يشبه شريط الأزرار السريعة الذي يتم تنفيذه باستخدام ToolBar في المظهر الشريط الذي تم إنشاؤه بواسطة الطريقة الأولى.
يمكن لكلتا الطريقتين المذكورتين أعلاه تنفيذ شريط أزرار سريع، ولكن لكل منهما مزاياه الخاصة: عملية التصميم الأولى بسيطة نسبيًا؛ وتوفر الطريقة الثانية المزيد من الوظائف، مثل استخدام HotImages لتحديد مجموعة الصور عندما يشير الماوس إلى الزر . قد يرغب القراء في اختيار واحد ومواصلة تحسين وظائفه.
كيفية إنشاء جدول مؤقت
يعد إدخال البيانات جزءًا لا مفر منه من تطوير برامج قواعد البيانات. في بنية العميل/الخادم، قد يحتاج العميل إلى إدخال مجموعة من البيانات ثم إرسالها إلى قاعدة بيانات الواجهة الخلفية للخادم، وهذا يتطلب إنشاء جدول بيانات مؤقت محليًا (العميل) لتخزين البيانات التي أدخلها المستخدم التقديم، سيتم مسح جدول البيانات المحلية. فوائد هذه الطريقة هي: تحسين كفاءة الإدخال وتقليل عبء الشبكة.
نظرًا لأن كمية البيانات المدخلة من قبل المستخدمين في وقت واحد تكون صغيرة بشكل عام (لا تزيد عن بضع مئات من السجلات)، فيمكن إنشاء جدول مؤقت في الذاكرة، مما يؤدي إلى معالجة أسرع. هناك طريقتان لإنشاء جدول مؤقت:
1. استخدم التحكم في الاستعلام لإنشاء جدول مؤقت
الخطوة 1: ضع عنصر تحكم الاستعلام (TQuery) في النموذج وقم بإعداد جدول البيانات المتصل.
الخطوة الثانية: أضف العبارة التالية:
TQuery.CachedUpdates=True;
TQuery.RequestLive=صحيح.
الخطوة 3: إضافة عبارة Where الفرعية بعد عبارة SQL الأصلية من المطلوب أن تكون نتيجة استعلام SQL فارغة بعد إضافة عبارة Where الفرعية هذه.
على سبيل المثال:
SELECT Biolife."رقم النوع"، الفئة، الاسم الشائع، الحياة الحيوية. "اسم النوع"، الحياة الحيوية. "الطول (سم)"، الطول_In، الملاحظات، الرسم
من "biolife.db" Biolife
حيث Biolife.Category=′A′ وBiolife.Category=′B′
بهذه الطريقة يتم إنشاء الجدول المؤقت.
2. استخدم الكود لإنشاء جدول مؤقت
رمز الوظيفة كما يلي:
وظيفة CreateTableInMemory(const AFieldDefs:TFieldDefs):
TDataSet;
فار TempTable:TClientDataSet;
يبدأ
TempTable:=nil;
النتيجة: = لا شيء؛
إذا AFieldDefs〈〉لا شيء ثم
يبدأ
يحاول
TempTable:=TClientDataSet.Create(application);
TempTable.FieldDefs.Assign(AFieldDefs);
TempTable.CreateDataSet;
النتيجة:=(TempTable as TDataSet);
يستثني
إذا كان TempTable〈〉 لا شيء، ثم TempTable.Free؛
النتيجة: = لا شيء؛
يرفع؛
نهاية
نهاية
نهاية؛
نسميها في البرنامج على النحو التالي:
الإجراء TForm1.Button1Click(Sender: TObject);
فار ADataSet:TDataSet;
يبدأ
ADataSet:=TDataSet.Create(Self);
مع ADataSet.FieldDefs القيام به
يبدأ
Add('Name',ftString,30,False);
إضافة('Value',ftInteger,0,False);
نهاية؛
مع DataSource1 القيام به
يبدأ
DataSet:=CreateTableInMemory(ADataSet.FieldDefs);
DataSet.Open;
نهاية؛
ADataSet.Free;
نهاية؛
بهذه الطريقة يتم إنشاء الجدول المؤقت.
الطريقة الأولى سهلة الاستخدام، ولكن بسبب استخدام عناصر التحكم في الاستعلام، يجب الاستعلام عن قاعدة بيانات الواجهة الخلفية للخادم عند مسح البيانات، وبالتالي تكون السرعة أبطأ قليلاً، وهي غير مناسبة للمواقف التي يكون فيها كل حقل في الجدول المؤقت تتألف من حقول من عدة جداول البيانات. تحتوي الطريقة الثانية على نطاق واسع من التطبيقات وهي سريعة، ولكنها تتطلب كتابة تعليمات برمجية.
استخدام الوظائف في قاعدة بيانات InterBase
عندما يستخدم المبرمجون InterBase كقاعدة بيانات خلفية، غالبًا ما يجدون أنه غير مناسب للاستخدام لأنه يوفر عددًا قليلاً جدًا من الوظائف (أربعة فقط)، مما يجعل من المستحيل كتابة الإجراءات المخزنة المعقدة بسهولة. لا يستطيع InterBase نفسه كتابة الوظائف، لكن يمكنه استخدام وظائف خارجية (استدعاء الوظائف في ملف DLL). يوضح المثال التالي كيفية تعريف الدالة SUBSTR في InterBase.
أعلن عن الوظيفة الخارجية SUBSTR
CSTRING(80)، سمالينت، سمالينت
إرجاع سلسلة(80)
ENTRY_POINT "IB_UDF_substr" MODULE_NAME "ib_udf"
من بينها: MODULE_NAME هو اسم ملف DLL، وENTRY_POINT هو اسم الوظيفة.
ويمكن استخدامه بعد التصريح، على سبيل المثال:
حدد SUBSTR(البلد)
من البلاد
يستخدم هذا المثال قاعدة بيانات IBLocal التي تأتي مع تثبيت دلفي، ويمكن للمستخدمين أيضًا كتابة وظائفهم الخاصة لتوسيع InterBase.