مجموعة السجلات كيف تحدد مجموعات السجلات السجلات (ODBC)
هذا الموضوع يُطبق على فئات MFC ODBC.
هذا الموضوع يوضح :
دورك و اختياراتك لتحديد السجلات.
كيفية بناء عبارة SQL الخاصة به ووحدات تحديد السجلات.
ما يمكن القيام به لتخصيص التحديد.
مجموعات السجلات تحدد السجلات من مصدر البيانات خلال برنامج تشغيل ODBC بإرسال عبارات SQL إلى برنامج التشغيل. إرسال SQL يعتمد على كيفية تصميم و فتح فئة مجموعة السجلات.
الاختيارات الخاصة بك في تحديد السجلات
يوضح الجدول التالي الاختيارات الخاصة بك في تحديد السجلات.
متى و كيف يمكنك التأثير فى مجموعة السجلات
عند القيام بما يلي: |
يمكنك |
---|---|
التصريح بفئة مجموعة السجلات الخاصة بك بمعالج إضافة فئة |
تحديد أي جدول ستختارمنه. تعيين أى أعمدة ستقوم بتضمينها. راجع إضافة عميل MFC ODBC. |
إكمال تطبيق فئة مجموعة السجلات الخاصة بك |
تجاوز عضو مجموعة السجلات مثل OnSetOptions (متقدم) لتعيين الخيارات الخاصة بالتطبيق أو لمنع الإعدادات الافتراضية. حدد أعضاء بيانات المعلمة إذا كنت تريد مجموعة سجلات ذات معلمات. |
إنشاء كائن مجموعة سجلات (قبل إستدعاءOpen) |
تحديد شرط بحث (من المحتمل أن يكون مركباً) للاستخدام في عبارة WHERE التي تقوم بتصفية السجلات. راجع مجموعة السجلات: تصفية السجلات (ODBC) تحديد ترتيب فرز لاستخدامه في عبارة ORDER BY التي تقوم بفرز السجلات. راجع مجموعة السجلات: فرز السجلات ODBC. تحديد قيم المعلمات لأى معلمات تضيفها إلى الأسلوب . راجع مجموعة السجلات: جعل مجموعة السجلات لها معلمات (ODBC) |
تشغيل استعلام مجموعة السجلات ياستدعاء Open |
تحديد صفيف SQL مخصص ليستبدل صفيف SQL الافتراضى المعد من قبل المعالج راجع CRecordset::Open فى مرجع مكتبة الفئات و SQL: تخصيص عبارة SQL الخاصة بمجموعة السجلات (ODBC). |
استدع Requery للاستعلام عن مجموعة السجلات بآخر قيم على مصدر البيانات. |
تحديد معلمات أو عوامل تصفية أو فرز حديد راجع مجموعة السجلات: إعادة استعلام مجموعة سجلات (ODBC). |
كيفية إنشاء مجموعة سجلات لعبارات SQL الخاصة بها
عند استدعاء دالة العضو Open الخاصة بكائن مجموعة السجلات، تقوم Open بإنشاء عبارة SQL باستخدام بعض أو كل المكونات التالية:
المعلمة lpszSQL تم تمريرها إلى Open. إذا لم تكن NULL ، هذه المعلمة تحدد سلسلة SQL مخصصة أو جزء منها. إطار العمل يفسر السلسلة. إذا كانت السلسلة جملة SQLـ SELECT أو جملة ODBCـ CALL، يستخدم إطار العمل السلسلة كمجموعة سجلات جملة SQL . إذا لم تبدأ السلسلة "SELECT" أو "{CALL" ، يستخدم الإطار ما تم توفير لإنشاء عبارة SQL ـ FROM.
السلسلة التي تم إرجاعها بواسطة GetDefaultSQL. هذا هو اسم الجدول الذي حددته لمجموعة السجلات في المعالج بشكل افتراضي، ولكن يمكنك تغيير ما تقوم بإرجاعه. إطار العمل يستدعي GetDefaultSQL — إذا لم تبدأ السلسلة بـ "SELECT" أو "{CALL" ، فمن المفترض أن تكون اسم الجدول الذي يستخدم لإنشاء سلسلة SQL.
أعضاء بيانات الحقل لمجموعة السجلات المربوطة لأعمدة محددة من الجدول. إطار العمل يربط أعمدة السجل بعناوين هذه الأعضاء ، و يستخدمهم كمخازن مؤقتة. إطار العمل يحدد ارتباط أعضاء بيانات الحقل بأعمدة الجدول من RFX أو استدعاءات دالة RFX المجمعة في دالة العضو DoFieldExchange أو DoBulkFieldExchange في مجموعة السجلات.
عامل التصفيةلمجموعة السجلات ، إن وجد، المضمن في عضو البيانات m_strFilter. إطار العمل يستخدم هذه السلسلة لإنشاء جملة SQLـ WHERE.
ترتيب الفرز لمجموعة السجلات، إذا وجد، مضمن في عضو البيانات m_strSort. إطار العمل الذي يستخدم هذه السلسلة يقوم بإنشاء جملة SQL ـ ORDER BY.
تلميح
لاستخدام عبارة GROUP BY (و ربما عبارة HAVING)، قم بإلحاق العبارات بنهاية سلسلة عامل التصفية.
قيم أى أعضاء بيانات معلمات تحددها فى الفئة. تعيّن معلمة القيم فقط قبل استدعاء Open أو Requery . إطار العمل يربط قيم المعلمة إلى العناصر النائبة "؟" في سلسلة SQL. فى وقت الترجمة، تحدد السلسلة بالعناصر النائبة. في وقت التشغيل، إطار العمل يقوم بتعبئة تفاصيل استناداً إلى قيم المعلمة التى قمت بتمريرها.
Open تقوم بإنشاء عبارة SQL ـSELECT من هذه المكونات. راجع تخصيص التحديدللحصول على تفاصيل حول كيفية إستخدام إطار العمل للمكونات.
بعد إنشاء العبارة ، ترسل Open الـ SQL لإدارة برامج تشغيل ODBC (و مكتبة مؤشر ODBC إذا كان في الذاكرة) ، والتي ترسلها لبرنامج تشغيل ODBC لـ DBMS المعينة. يتصل برنامج التشغيل بDBMS لتنفيذ التحديد على مصدر البيانات و جلب السجل الأول. إطار العمل يحمل السجل إلى أعضاء بيانات حقل مجموعة السجلات.
يمكنك استخدام تركيبة من هذه التقنيات لفتح الجداول و لإنشاء استعلام يستند إلى joinمن جداول متعددة. مع تخصيص إضافي يمكنك استدعاء الاستعلامات المعرفة مسبقاً(الإجراءات المخزنة) و تحديد أعمدة الجدول غير معروفة في وقت التصميم و ربطهم بحقول مجموعة السجلات أو يمكنك إجراء معظم مهام الوصول إلى البيانات. مازال يمكن تحقيق المهام التي لا يمكن إنجازها عن طريق تخصيص مجموعات السجلات بواسطة استدعاء وظائف API ODBCأو تنفيذ جمل SQL مباشرة بـ CDatabase::ExecuteSQL.
تخصيص التحديد
بجانب إضافة عامل تصفية أو ترتيب فرز أو معلمات ، يمكنك اتخاذ الإجراءات التالية لتخصيص مجموعة السجلات الخاصة بك:
قم بتمرير سلسلة SQL مخصصة في lpszSQL عند استدعاء Open للحصول على مجموعة السجلات . تمرير أي شيء في lpsqSQL يأخذ الأسبقية فوق ما ترجعه دالة العضو GetDefaultSQL.
لمزيد من المعلومات، راجع SQL: تخصيص عبارة SQL الخاصة بمجموعة السجلات، التي تصف أنواع عبارات SQL (أو عبارات جزئية) يمكنك تمريرها إلى Open و ما يقوم إطار العمل بفعله بها.
ملاحظة
إذا كانت السلسلة المخصصة التي تمررها لا تبدأ ب "SELECT" أو "{CALL" ، يفترض MFC أنها تحتوي على اسم جدول. ينطبق هذا أيضاً على العنصر النقطي التالي.
قم بتغيير السلسلة يكتب المعالج في دالة العضو GetDefaultSQL الخاصة بمجموعة السجلات الخاصة بك. قم بتحرير التعليمات البرمجية لدالة لتغيير ما ترجعه. بشكل افتراضي، يقوم المعالج بكتابة الدالة GetDefaultSQL التي ترجع اسم جدول مفرد.
يمكن أن يكون لديك GetDefaultSQL تقوم بإرجاع أي من العناصر التي يمكنك تمريرها في المعلمة lpszSQL إلى Open. إذا لم تقم بتمرير سلسلة SQL مخصصة في lpszSQL يستخدم Framework السلسلة التى أرجعها GetDefaultSQL. كحد أدنى, GetDefaultSQL يجب أن ترجع اسم جدول مفرد. ولكن يمكنك أن تجعلها ترجع أسماء عدة جداول ، جملة SELECT كاملة ، و جملة ODBC ـ CALL و هكذا. للحصول على قائمة ما يمكنك تمرير lpszSQL — أو يكون لديك إرجاع GetDefaultSQL— راجع SQL: تخصيص عبارة SQL الخاصة بمجموعة السجلات (ODBC).
إذا كنت تقوم بربط جدولين أو أكثر قم بإعادة كتابة GetDefaultSQL لتخصيص قائمة الجداول المستخدمة في عبارة SQL ـ FROM . للحصول على مزيد من المعلومات، راجع مجموعة السجلات. تنفيذ ضمّ (ODBC)
قم بربط بيانات الحقل الإضافية يدوياً ، ربما استناداً إلى معلومات الحصول على مخطط مصدر البيانات في وقت التشغيل. قم بإضافة حقل بيانات أعضاء فئة مجموعة السجلات أو RFX أو استدعاءات دالة RFX مجمعة لدالة العضو DoFieldExchange أو DoBulkFieldExchange و عمليات التهيئة من بيانات الأعضاء في منشئ الفئة. للحصول على مزيد من المعلومات، راجع مجموعة السجلات. ربط أعمدة البيانات بشكل حيوي (ODBC).
تجاوز عضو مجموعة السجلات مثل OnSetOptions لتعيين الخيارات الخاصة بالتطبيق أو لمنع الإعدادات الافتراضية.
إذا كنت ترغب في جعل مجموعة السجلات تستند على عبارة SQL معقدة تحتاج إلى استخدام تركيبة من هذه التقنيات المخصِصة. على سبيل المثال، ربما تريد استخدام عبارات SQL والكلمات الأساسية المعتمدة بشكل غير مباشر من قبل مجموعات السجلات أو ربما تقوم بربط جداول متعددة.