عمليات التخزين معقدة ومعقدة ، لكنها يمكن أن تدعم شخصيات منطقية متعددة. يمكننا اختيار البحث في هذا الجدول وتحسين سرعة الإجراءات المخزنة. هل تعرف تنفيذ التعليمات البرمجية لـ ASP والإجراءات المخزنة التي تبحث عن برامج البحث في الإجراءات المخزنة؟ دع محرر قناة Foot New Technology يأخذك لمعرفة المزيد عنها!
وظيفة ASP
نسخة الكود كما يلي:وظيفة analysekeyword (A_strsource)
Dim M_Strdest ، m_intloop
dim m_intbeginpos ، m_intendpos
dim m_strhead ، m_strmiddle ، m_strach
m_strdest = a_strsource
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
أولاً قم بإزالة المساحات في النهاية
m_strdest = ltrim (rtrim (m_strdest))
"استبدال و" و "إلخ مع +، -، المساحات
m_strdest = استبدال (m_strdest ، "&" ، "+")
m_strdest = استبدال (m_strdest ، "و" و "+")
m_strdest = استبدال (m_strdest ، "أو" ، chr (32))
m_strdest = استبدال (m_strdest ، "لا" ، "-")
تهيئة المتغير لجعل الحلقة التالية تذهب
m_intbeginpos = 1
افعل بينما m_intbeginpos <> 0
m_intbeginpos = instr (m_strdest ، chr (32))
إذا كان m_intbeginpos <> 0 ثم "إذا تم العثور على مساحة
m_strhead = rtrim (ltrim (يسار (m_strdest ، m_intbeginpos)))))
طباعة الاتصال ("[analysekeyword ()]: تعامل الفضاء m_strhead =" + m_strhead)
m_strada = rtrim (ltrim (يمين (m_strdest ، len (m_strdest) - m_intbeginpos))))))))))))))))))))
طباعة الاتصال ("[analysekeyword ()]: تعامل الفضاء m_strille =" + m_strache)
m_strdest = m_strhead + "*" + m_strach
آخر
الخروج تفعل
إنهاء إذا
حلقة
m_strdest = استبدال (m_strdest ، "*" ، chr (32))
طباعة الاتصال ("[analysekeyword ()]: بعد معالجة المساحات ، m_strdest =" + m_strdest)
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
أولاً استبدال عروض أسعار واحدة مع عروض أسعار مزدوجة
m_strdest = استبدال (m_strdest ، chr (39) ، chr (34))
قم بتعيين قيمة أولية لجعل الحلقة تذهب
m_intbeginpos = 1
m_intendpos = 1
m_strhead = ""
m_strached = ""
افعل بينما m_intbeginpos <> 0 و m_intendpos <> 0
إذا تم العثور على عروض أسعار مزدوجة ، لاحظ موضع البداية وابحث عن الاقتباس المزدوج التالي
m_intbeginpos = instr (m_strdest ، chr (34))
إذا كان m_intbeginpos <> 0 ثم 'إذا تم العثور على الاقتباس الأول
Call Print ("[analysekeyword ()]: الموقع الذي يظهر فيه الاقتباس الأول:" + CSTR (m_intbeginpos)))
m_intendpos = instr (m_intbeginpos + 1 ، m_strdest ، chr (34))
إذا كان m_intendpos <> 0 ثم "إذا تم العثور على الاقتباس الثاني
طباعة الاتصال ("[analyseKeyword ()]: حيث يظهر الاقتباس الثاني:" + CSTR (m_intendpos))
"افصل السلسلة بأكملها إلى ثلاث فقرات في اقتباسات
طباعة الاتصال ("[analysekeyword ()]: مقابض اقتباسات m_strdest =" + m_strdest)
m_strhead = اليسار (m_strdest ، m_intbeginpos - 1)
طباعة الاتصال ("[analysekeyword ()]: مقابض اقتباسات m_strhead =" + m_strhead)
m_strmiddle = mid (m_strdest ، m_intbeginpos + 1 ، m_intendpos - m_intbeginpos - 1)
طباعة الاتصال ("[analysekeyword ()]: مقابض اقتباسات m_strmiddle =" + m_strmiddle)
m_strada = يمين (m_strdest ، len (m_strdest) - m_intendpos)
طباعة الاتصال ("[analysekeyword ()]: m_strille =" + m_strache)
"إذا كان هناك علامة + في الاقتباسات ، فسيتم معالجتها كحرف واستبدالها مؤقتًا بأحرف أخرى
m_strmiddle = استبدال (m_strmiddle ، "+" ، "|")
m_strdest = m_strhead + استبدال (rtrim (ltrim (m_strmiddle)) ، chr (32) ، "#"
آخر
الخروج تفعل
إنهاء إذا
آخر
الخروج تفعل
إنهاء إذا
حلقة
m_strdest = استبدال (m_strdest ، chr (34) ، "+")
طباعة الاتصال ("[analysekeyword ()]: بعد معالجة علامات الاقتباس ، m_strdest =" + m_strdest)
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
"استكشاف الأخطاء وإصلاحها عدة علامات زائد ، إذا واجهت علامات متعددة زائد ، فأنت تعتقد أنها سلسلة ، وليست حرفًا منطقيًا
m_strdest = استبدال (m_strdest ، "+++" ، "|||")
m_strdest = استبدال (m_strdest ، "++" ، "||")
Call Print ("[analysekeyword ()]: بعد معالجة علامات عدة ناقص ، m_strdest = '" + m_strdest + "' ')
تعامل مع المساحات على جانبي علامة الجمع
m_strdest = استبدال (m_strdest ، " +" ، " +")
m_strdest = استبدال (m_strdest ، "+" ، "+")
m_strdest = استبدال (m_strdest ، " +" ، " +")
Call Print ("[analyseKeyword ()]: بعد معالجة المساحات على جانبي علامة Minus m_strdest = '" + m_strdest + "' ')
'-------------------------------------------------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
"استكشاف الأخطاء وإصلاحها عدة ناقلات ، إذا واجهت علامات متعددة ناقص ، فستعتقد أنها سلسلة وليست حرفًا منطقيًا
m_strdest = استبدال (m_strdest ، "---" ، "~~~~")
m_strdest = استبدال (m_strdest ، "-" ، "~~")
Call Print ("[analysekeyword ()]: بعد معالجة علامات عدة ناقص ، m_strdest = '" + m_strdest + "' ')
"علاج المساحات على جانبي علامة ناقص
m_strdest = استبدال (m_strdest ، " -" ، " -")
m_strdest = استبدال (m_strdest ، "-" ، "-")
m_strdest = استبدال (m_strdest ، " -" ، " -")
Call Print ("[analyseKeyword ()]: بعد معالجة المساحات على جانبي علامة Plus M_Strdest = '" + m_strdest + "'")
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
إذا كان len (m_strdest)> = 3 ثم
m_strhead = اليسار (m_strdest ، 1)
m_strmiddle = mid (m_strdest ، 2 ، len (m_strdest) - 2)
m_strache = يمين (m_strdest ، 1)
إذا كان m_strhead = "+" أو m_strhead = "-" ثم
m_strhead = ""
إنهاء إذا
إذا كان m_stradist = "+" أو m_strille = "-" ثم
m_strached = ""
إنهاء إذا
m_strdest = m_strhead + m_strmiddle + m_strache
إنهاء إذا
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
m_strdest = استبدال (m_strdest ، "-" ، "~~")
m_strdest = استبدال (m_strdest ، "++" ، "||")
m_strdest = استبدال (m_strdest ، chr (32) ، "@")
analyseKeyword = m_strdest
طباعة الاتصال ("[analysekeyword ()]: بعد اكتمال كل المعالجة m_strdest = '" + m_strdest + "'")
وظيفة نهاية
٪>
الإجراءات المخزنة
/********************************************************/
/ * proc name: up_parswordsearch */
/ * */
/ * الوصف: البحث عن الكلمات الرئيسية */
/ * */
/ * المعلمات: @A_StrCategoryID معرف الفئة */
/ * @a_intposition موقع الاتصال */
/ * @A_Strparseword Search عن الكلمات الرئيسية */
/ * A_IntrowCount يحد من الحد الأقصى لعدد السجلات للحصول على */
/ * */
/ * التاريخ: 2000/6/28 */
/ * */
/ * المؤلف: liuyunpeng */
/ * */
/* تاريخ: */
/********************************************************/
إذا كانت موجودة (حدد * من sysobjects حيث id = object_id ("up_parswordsearch")))
Drop Proc UP_ParsewordSearch
يذهب
إنشاء proc up_parswordsearch @
A_strcategoryid varchar (255) ،
A_intposition TinyInt ،
a_introwCount int
مثل
DECRAREM_STRSQLCONDITION VARCHAR (255) -الجزء الشرطي من بيان SQL
DECRAYREM_STRSQLSELECT VARCHAR (255) -جزء اختيار بيان SQL
DECRAYRYM_STRSQLCATEGORY VARCHAR (100) -فئة جزء من بيان SQL
/*الدفاع عن جزء التحديد من SQL بناءً على موقع المكالمة*/
حدد m_strsqlselect
= الحالة
عندما يكون A_INTPOSSION = 4 ثم -مكتبة المنتج
"حدد ProductID ،" العنوان "= اسم المنتج ،" الوصف "= اليسار (الوصف ، 100)"
+ "من المنتج حيث"
عندما يكون A_IntPosition = 5 ثم مكتبة فرص العمل
"حدد المعرف ، العنوان ،" الوصف "= اليسار (تحويل (varchar ، المحتوى) ، 100)"
+ "من BusinessChance حيث"
عندما يكون A_IntPosition = 6 ثم مكتبة -شمّع
"حدد CompanyId ،" title '= CompanyName ،' Description '= Left (Description ، 100) "
+ "من الشركة أين"
نهاية
/*الدفاع عن جزء التصنيف من SQL بناءً على معرف التصنيف*/
حدد m_strsqlcategory
= الحالة
عندما يكون A_StrCategoryID <> "0" ثم "الفئة" مثل " + A_StrCategoryID +" ٪ "و"
آخر ""
نهاية
/*تحديد الجزء الشرطي من SQL بناءً على موقع المكالمة*/
حدد m_strsqlcondition
= الحالة
عندما يكون A_IntPosition = 4 -منتج
ثم "(اسم ProductName مثل" ٪ " + A_strparseword +" ٪ ""
+ "أو الوصف مثل" ٪ "
+ "أو اسم المنتج مثل" ٪ " + A_strparseword +" ٪ ")"
عند فرص العمل = 5 -فرص العمل
ثم "(العنوان مثل" ٪ "
+ "أو كلمة رئيسية مثل" ٪ " + @a_strparseword +
عندما @a_intposition = 6
ثم "(اسم الشركة مثل" ٪ " + A_strparseword +" ٪ ""
+ "أو الوصف" ٪ " + a_strparseword +" ٪ ")"
نهاية
تعيين rowcounta_introwCount
exec (m_strsqlselect + @m_strsqlcategory + @m_strsqlcondition)
تعيين rowcount 0
يذهب
ما سبق هو تنفيذ الكود لبرنامج البحث في ASP والإجراءات المخزنة. أعتقد أن كل شخص لديه فهم معين. إذا كنت ترغب في معرفة المزيد من المعلومات الفنية ، فيرجى الاستمرار في الانتباه إلى قناة التكنولوجيا الجديدة الخاطئة!