موصى به: استخدم SQL-DMO لإنشاء تطبيقات ASP النسخ الاحتياطي والتحقق نظرة عامة على كائنات الإدارة الموزعة SQL (SQL-DMO) توفر للمطورين طرقًا لأداء المهام العادية باستخدام لغات البرنامج والبرمجة ، وبالتالي توسيع وظائف SQL Server. يتحدث هذا المقال عن كيفية استخدام SQL-DMO بذكاء لإنشاء
1. حدد بيان
في عالم SQL ، فإن العملية الأساسية هي عبارة SELECT. عند استخدام SQL مباشرة ضمن أداة قاعدة البيانات ، سيكون الكثير من الأشخاص على دراية بالعمليات التالية:
| ما يلي هو المحتوى المقتبس: حدد ما من ذلك حيث المعايير |
سيؤدي تنفيذ البيان أعلاه إلى إنشاء استعلام يخزن نتائجه.
على ملفات صفحة ASP ، يمكنك أيضًا استخدام بناء الجملة العام أعلاه ، ولكن الموقف مختلف قليلاً. عند برمجة ASP ، يجب تعيين محتوى عبارة SELECT إلى متغير كسلسلة:
| ما يلي هو المحتوى المقتبس: SQL = حدد ما هو من حيث المعايير حيث المعايير |
حسنًا ، أفهم كيف تتحدث SQL تحت ASP ، ثم تفعل ذلك بنفس الطريقة. طالما تلبي احتياجاتك ، يمكن أن يكون وضع استعلام SQL التقليدي والاستعلام المشروط مفيدًا.
على سبيل المثال ، قد تفترض أيضًا أن هناك جدول بيانات في قاعدة البيانات الخاصة بك ، أي المنتجات ، والآن تريد استرداد جميع السجلات في هذا الجدول. ثم كتبت الرمز التالي:
| ما يلي هو المحتوى المقتبس: SQL = حدد * من المنتجات |
تتمثل وظيفة عبارة الكود SQL أعلاه في استرداد جميع البيانات في الجدول. بعد التنفيذ ، سيتم تحديد جميع السجلات في جدول البيانات. ومع ذلك ، إذا كنت تريد فقط إزالة عمود معين من الجدول ، مثل P_Name. ثم لا يمكنك استخدام حرف * Wildcard. يجب عليك كتابة اسم عمود معين ، والرمز كما يلي:
| ما يلي هو المحتوى المقتبس: SQL = حدد p_name من المنتجات |
بعد تنفيذ الاستعلام أعلاه ، سيتم تحديد جميع المحتويات في جدول المنتجات وعمود p_name.
2. قم بتعيين شروط الاستعلام لمكان البند
على سبيل المثال ، إذا كنت تخطط فقط لإخراج سجلات p_name ، ويجب بدء أسماء هذه السجلات بالحرف w ، فعليك استخدام الشرط التالي:
| ما يلي هو المحتوى المقتبس: sql = حدد p_name من المنتجات حيث p_name مثل 'w ٪' |
حيث تتبع الكلمة الرئيسية الشروط المستخدمة لتصفية البيانات. بمساعدة هذه الشروط ، سيتم الاستعلام عن البيانات التي تلبي معايير معينة فقط. في المثال أعلاه ، لن تحصل نتيجة الاستعلام على سجل P_Name فقط مع الاسم الذي يبدأ بـ W.
في المثال أعلاه ، يعني رمز النسبة المئوية (٪) أن الاستعلام يعيد جميع إدخالات السجلات التي تبدأ بأحرف W وتتبعها أي بيانات أو حتى لا توجد بيانات. لذلك ، عند تنفيذ الاستعلام أعلاه ، سيتم اختيار West و Willow من جدول المنتجات وتخزينه في الاستعلام.
كما ترون ، ما عليك سوى تصميم بيان SELECT بعناية ، يمكنك الحد من مقدار المعلومات التي يتم إرجاعها في مجموعة السجلات ، والتفكير أكثر سوف يفي دائمًا بمتطلباتك.
هذه مجرد بداية لإتقان استخدام SQL. لمساعدتك تدريجياً في إتقان استخدام عبارات Select المعقدة ، دعنا نلقي نظرة على المصطلحات القياسية الرئيسية: عوامل المقارنة. غالبًا ما يتم استخدام هذه الأشياء عند إنشاء سلاسل تحديد خاصة بك للحصول على بيانات محددة.
حيث الأساسيات البند
عندما تبدأ في إنشاء جملة حيث ، فإن أسهل طريقة هي استخدام رموز المقارنة القياسية ، وهي <، <= ،> ،> = ، <> و =. من الواضح ، ستفهم قريبًا معنى ونتائج التعليمات التالية:
| ما يلي هو المحتوى المقتبس: حدد * من المنتجات حيث p_price> = 199.95 حدد * من المنتجات حيث p_price <> 19.95 حدد * من المنتجات التي p_version = '4' |
ملاحظة: هنا ستلاحظ أن الرقم 4 في المثال الأخير محاط باقتباسات واحدة. والسبب هو أنه في هذا المثال ، 4 هو نوع نص وليس نوعًا رقميًا.
3. عوامل المقارنة: مثل ، وليس مثل
يحدد مشغل المقارنة نطاق المحتوى الذي يتم استرداد البيانات له من الجدول. يمكنك استخدامها لإنشاء مرشحات لتضييق نطاق مجموعة السجلات ، مما تسبب في حفظ المعلومات التي تهتم بها فقط بموجب مهمة معينة.
لقد رأيت استخدام مثل في المثال الذي أخرجت فيه سجل رأس W أعلاه. المحدد المشابه هو رمز مفيد للغاية. ومع ذلك ، في كثير من الحالات ، قد يجلب لك استخدامه الكثير من البيانات ، لذلك من الأفضل استخدام عقلك والتفكير أكثر حول البيانات التي تريد الحصول عليها قبل استخدامها. لنفترض أنك ترغب في إخراج عدد SKU من 5 أرقام ، وبدايتها هي 1 والنهاية هي 5 ، ثم يمكنك استخدام السفار السفلي (_) بدلاً من رمز ٪:
SQL = SELECT * من المنتجات حيث P_SKU مثل "1___5"
يمثل السطحي أي حرف. لذلك عند إدخال 1___5 ، سيقتصر بحثك على النطاق المكون من 5 أرقام والذي يفي بوضع معين.
إذا كنت ترغب في القيام بالعكس ، اكتشف جميع إدخالات SKU التي لا تتطابق مع وضع 1___5. ثم تحتاج فقط إلى إضافتها إلى ما شابه في مثال البيان الآن.
بين
لنفترض أنك ترغب في استخراج البيانات في نطاق معين وتعرف نقطة البداية ونقطة النهاية مسبقًا ، يمكنك أيضًا استخدام كلمة الحكم. الآن دعنا نفترض أنك تريد تحديد السجلات مع نطاق يتراوح بين 1 و 10 في جدول معين. يمكنك استخدام ما بين ما يلي:
... حيث معرف بين 1 و 10
أو يمكنك استخدام جمل الحكم الرياضية المألوفة:
... حيث معرف> = 1 ومعرف> = 10
4. بيان مشترك
عبارات SQL التي تحدثنا عنها حتى الآن بسيطة نسبيًا. إذا تمكنوا من اجتياز استعلام حلقة السجلات القياسية ، فيمكن أن تلبي هذه العبارات أيضًا بعض المتطلبات الأكثر تعقيدًا. ومع ذلك ، لماذا يجب عليك الالتزام بالمستوى الأساسي لمجرد تجربته؟ يمكنك إضافة بعض الرموز الأخرى ، مثل ولا ، أو لا ، لإكمال وظائف أكثر قوة.
عبارة SQL التالية مثال:
| ما يلي هو المحتوى المقتبس: SQL = SELECT C_FIRSTNAME ، C_LASTNAME ، C_EMAIL من العملاء حيث لا يكون C_EMAIL فارغًا و C_PURCHASE = "1" أو C_PURCHASE = "2" و C_LASTNAME مثل "A ٪" |
بفضل معرفة SQL التي لديك حاليًا ، ليس من الصعب توضيح الأمثلة أعلاه ، لكن البيان أعلاه لا يسمح لك بوضوح بمعرفة كيف يتم لصق الجمل الشرطية في بيان SQL واحد.
عبارات خط متعددة
إذا لم يكن من السهل فهم عبارات SQL ، فيمكنك أيضًا تحلل البيان بأكمله في سطور متعددة من التعليمات البرمجية ، ثم إضافة مكونات مختلفة لبيان الاستعلام استنادًا إلى المتغيرات الموجودة وتخزينها في نفس المتغير:
| ما يلي هو المحتوى المقتبس: sql = حدد c_firstname ، c_lastname ، c_emailaddress ، c_phone SQL = SQL ومن العملاء sql = sql وأين c_firstname مثل "a ٪ 'و c_emailaddress لا فارغ SQL = SQL و ORDER بواسطة C_LASTNAME ، C_FIRSTNAME |
بحلول الجملة الأخيرة ، يحتوي متغير SQL على عبارة تحديد كاملة التالية:
| ما يلي هو المحتوى المقتبس: حدد c_firstname ، c_lastname ، c_emailaddress ، c_phone من العملاء حيث c_firstname مثل "a ٪ 'و c_emailaddress أي ترتيب فارغ بواسطة c_lastname ، c_firstname |
بعد تحلل الجملة بأكملها أعلاه ، من الواضح أنه من الأسهل القراءة! عند تصحيح الأخطاء ، قد تكون أكثر استعدادًا لكتابة عدد قليل من الشخصيات لتغيير البرنامج وقراءته بشكل أفضل. ولكن عليك أن تتذكر أنك تحتاج إلى إضافة مسافات قبل إغلاق عروض الأسعار أو بعد فتح عروض الأسعار ، بحيث لا تضع بضع كلمات معًا عند توصيل السلسلة.
5. ابدأ التنفيذ
بعد تعلم بناء واستخدام عبارات محددة ، حان الوقت لتعلم كيفية استخدامها. ضمن أدوات قاعدة البيانات التي لديك ، قد يعني هذا أنه يتعين عليك الضغط على زر مع كلمة "التنفيذ". على صفحة ويب ASP ، يمكن تنفيذ عبارات SQL على الفور أو يمكن تسميتها كإجراء مخزن.
بمجرد إنشاء عبارة SQL ، يتعين عليك أيضًا محاولة الوصول إلى نتائج الاستعلام. من الواضح أن المفتاح هنا هو مجموعة سجلات ASP. لتحقيق أقصى استفادة من مهارات SQL الخاصة بك أكثر على دراية بها ، تحتاج إلى ضبط مجموعات السجلات التي يتم استخدامها بشكل شائع على صفحات الويب العادية ASP:
| ما يلي هو المحتوى المقتبس: قاتمة روبية تعيين rs = server.createBject (adodb.recordset) Rs.Open SQL ، Conn ، 1،2 |
هنا CONN هو إعلان اتصال قاعدة البيانات ، والتعديل الوحيد هو استخدام متغير يحتوي على عبارة SQL لاستبدال اسم جدول البيانات المراد الاستعلام عنه.
واحدة من مزايا هذا النهج هي أنه يمكنك تحديد نوع المؤشر (كما هو موضح في 1 و 2 أعلاه).
تنفيذ SQL
يمكنك أيضًا إنشاء مجموعات Records باستخدام سطر مدمج من التعليمات البرمجية لتنفيذ عبارات SQL. ما يلي هو بناء الجملة:
قاتمة روبية
تعيين rs = conn.execute (SQL)
في المثال أعلاه ، فإن SQL الذي تراه هو متغير تقوم بتخزين عبارة SQL Select الخاصة بك. يقوم سطر الكود هذا بتشغيل عبارات SQL (أو الاستعلام عن قاعدة البيانات) ، ويحدد البيانات ويخزن البيانات في مجموعة السجلات ، في المثال أعلاه ، RS المتغير. العيب الرئيسي لهذا النهج هو أنه لا يمكنك اختيار نوع المؤشر الذي تريد استخدامه. بدلاً من ذلك ، يتم فتح مجموعة السجلات دائمًا مع مؤشر إلى الأمام.
بسبب المؤشرات ، قد تكون على دراية بطريقتين لإنشاء مجموعات تسجيلات. إن تنفيذ الاستعلام يوفر مباشرة الوقت الذي يقضيه في كتابة الأحرف ، ولكن في هذه الحالة ، يجب عليك استخدام المؤشر الافتراضي ، والذي قد يفشل غالبًا في العمل بشكل طبيعي. بغض النظر عن الطريقة التي تستخدمها ، فإن الفرق الأكبر بين الاثنين ليس أكثر من ما إذا كان الرمز محسّن أم لا. دون النظر في الحقول التي تحصل عليها أو ما هي معاييرك ، وبغض النظر عن كيفية تخزين البيانات ، سيكون استخدام مجموعة السجلات على غرار SQL أصغر بكثير من حجم السجلات القياسية التي تم فتحها على ASP ، ناهيك عن سهولة التشغيل. بعد كل شيء ، من خلال تصفية البيانات ، يمكنك القضاء على اختبارات IF-Then التي تستغرق وقتًا طويلاً وحلقات محتملة.
6. استفسار المتجر
عندما يكون استعلامك بسيطًا نسبيًا ، لا يتطلب الأمر الكثير من الجهد لإنشاء عبارات SQL من نقطة الصفر في كل مرة. ومع ذلك ، فإن الاستعلامات المعقدة مختلفة. في كل مرة تبدأ من نقطة الصفر ، ستقوم بإنشاء العديد من أخطاء التطوير. لذلك بمجرد تشغيل SQL بسلاسة ، من الأفضل أن تنقذها واتصل بها إذا لزم الأمر. وبهذه الطريقة ، يمكن استخدام استعلام بسيط لتخزين بيان الاستعلام في أي وقت.
لنفترض أنه يتعين عليك إبلاغ فريقك مرة واحدة في الأسبوع للإشارة إلى مشكلات دعم الأعمال الحالية ، والتي تحتاج إلى اختيار من قاعدة البيانات الخاصة بك ، ويجب تحديد السجلات حسب التاريخ ، وفرزها وفقًا لفئة مشكلات الدعم التي تستخدمها. بمجرد تصميم هذا الاستعلام ، لماذا يتعين عليك إعادة كتابته مرة واحدة بعد أسبوع؟ لا تنشئ استعلامات على صفحة HTML الخاصة بك ، يجب عليك إنشاء استعلامات باستخدام أدوات قاعدة البيانات الخاصة بك وحفظها. ثم يمكنك استخدام خاصية ActiveCommand لإدراج الاستعلام في صفحة ASP الخاصة بك. قد تجدها بلا معنى في الأول أو اثنين ، ولكن في الحقيقة مجرد بضعة أسطر من التعليمات البرمجية:
| ما يلي هو المحتوى المقتبس: تعيين OBJSQ = server.createBject (ADODB.Command) OBJSQ.ActivEconnection = databasename OBJSQ.CommandText = storedQueryName OBJSQ.COMMANDTYPE = ADCMDSTORDERPROC تعيين OBJREC = OBJSQ.EXECUTE |
لاحظ أنه يعني استخدام ADCMDStoredProc أنك قمت بتضمين ملف ADOVBS.inc على الصفحة. يحدد هذا الملف ثوابت الوصول التي يمكنك الوصول إليها بالاسم بدلاً من الرقم. فقط قم بتضمين الملف الموجود في الصفحة) ، وبعد ذلك يمكنك استخدام ADCMDStoredProc. وبهذه الطريقة ، سيكون من الأسهل فهم ما يعنيه الاستعلام المخزن أعلاه عندما تراه في المستقبل.
7. الترتيب من قبل
حدد الأشياء الأكثر إثارة للاشمئزاز من قاعدة بيانات الوصول ، ويتم إدخالها في قاعدة البيانات بالترتيب الذي تم إدخاله. حتى إذا كنت تستخدم الفرز حسب بيئة الوصول لتغيير عرض السجل ، فإن ترتيب السجلات في جدول البيانات لم يتغير.
إذا كنت تستخدم مجموعة سجلات ASP لكتابة السجلات على صفحة ويب ، فقد تعرف مدى مؤلمة الحصول على الفوضى. ولكن قد تضطر إلى مواجهة هذه المشكلة في كثير من الأحيان لأنه لا يوجد حل بسيط ومريح. لحسن الحظ ، يمكن أن يبسط هذه المشكلة.
لفرز نتائجك ، ما عليك سوى إضافة الطلب إلى نهاية عبارة SELECT وحدد العمود المرجعي الذي تحتاج إلى فرزه. لذا ، إذا كنت ترغب في فرز جدول العملاء حسب الاسم الأخير للعميل ، فيمكنك كتابة بيان الاستعلام التالي:
SQL = حدد C_LASTNAME ، C_FIRSTNAME ، C_EMAIL من طلب العملاء بواسطة C_LASTNAME
وبهذه الطريقة ، طالما قمت بإنشاء مجموعة سجلات وتبدأ في كتابة النتائج على الشاشة ، سترى أن البيانات يتم ترتيبها أبجديًا.
فيما يلي العمليات على الجدول:
نسخ هيكل الجدول أ إلى الجدول ب فقط (لا توجد بيانات نسخ)
| ما يلي هو المحتوى المقتبس: SQL = SELECT * إلى B من A حيث 1 <> 1 SQL = حدد * إلى B من A حيث 1 = 0 |
انسخ بنية وبيانات الجدول أ إلى الجدول ب
| ما يلي هو المحتوى المقتبس: SQL = SELECT * إلى B من A |
حصة: ASP 3.0 البرمجة المتقدمة (45) يشير التنفيذ غير المتزامن إلى استرداد البيانات في الخلفية ، ويمكن استخدام البيانات التي حصلت عليها على صفحة الويب قبل إرجاع جميع البيانات. على الرغم من الحاجة إلى جميع البيانات ، يمكن أن يبدأ العمل غير المتزامن في معالجة البيانات مسبقًا على الأقل. يمكن أن يسمح للمستخدمين أيضًا رؤية محتوى معين أولاً ، مما يجعل موقع الويب