بشكل عام، هذا SQL مناسب فقط للاستخدام في قواعد البيانات الصغيرة، كما أن الحلقة في ASP غير فعالة. إذا كانت قاعدة بيانات كبيرة، فيرجى الاتصال بالأمير لطلب بيان استعلام SQL آخر مكتوب بواسطة أحد الخبراء. الوظيفة هي: استخدام كلمة أساسية كفهرس، والبحث في قاعدة البيانات بأكملها، ثم إرجاع اسم الجدول واسم العمود حيث توجد تلك الكلمة الأساسية. (إنه أمر رائع... خاصة عندما لا تتمكن من العثور على الجدول الذي يوجد به اسم المستخدم وكلمة المرور أثناء عملية الاقتحام. إذا كان بإمكانك العثور على الحقول مباشرة عن طريق إدخال الكلمة الرئيسية admin... فلا يتعين عليك إلقاء نظرة على كل جدول واحدًا تلو الآخر.) وبناءً على هذا البيان، قمت بكتابة برنامج نصي asp لتسهيل البحث في قاعدة البيانات في المستقبل.
الرمز هو كما يلي:
انسخ رمز الكود كما يلي:
<%
"تأكيد موضع الكلمة الرئيسية في قاعدة البيانات (أي جدول وأي عمود)"
"بواسطة oldjun(http://www.oldjun.com)
'استنادًا إلى قاعدة بيانات huangzi(http://www.2chuizi.com)'s sql
Server.ScriptTimeout=999999999
Response.Buffer = صحيح
على خطأ استئناف التالي
الكلمة الرئيسية = الطلب (الكلمة الرئيسية)
إذا كانت الكلمة الأساسية = إذن
Response.write بحاجة إلى الكلمة الرئيسية!
استجابة.النهاية
انتهي إذا
كون خافت
تعيين conn = Server.CreateObject(ADODB.Connection)
DimConnStr
'سلسلة الاتصال، الرجاء التغيير!
ConnStr=Driver={SQL SERVER};الخادم=مضيف محلي;UID=sa;PWD=sa;قاعدة البيانات=رئيسية
Conn.open ConnStr
conn.execute (إنشاء جدول huangzi_table (هوية int (1،1)، biaoid int، biaoname nvarchar (1000)))
conn.execute (أدخل huangzi_table حدد [id]،[name] من كائنات النظام حيث xtype='U')
قم بتعيين rs =conn.execute (اختر العد (المعرف) كـ tnum من huangzi_table)
تنوم = رس (تنوم)
rs. Close
تعيين RS=لا شيء
لأني = 1 إلى tnum
اضبط rsbiao =conn.execute (اختر biaoid من huangzi_table حيث المعرف=&i&)
بيويد = rsbiao (بيويد)
اضبط rst =conn.execute(اختر [biaoname] من huangzi_table حيث biaoid=&biaoid&)
tname=rst(biaoname)
قم بتعيين rsl=conn.execute(select count([name]) as lnum من syscolumns حيث id=&biaoid&)
lnum=rsl(lnum)
لـ j=1 إلى lnum
الرقم العلوي=j-1
قم بتعيين rslie=conn.execute(اختر أعلى 1 [name] من syscolumns حيث لا يوجد id=&biaoid& و[name]
(حدد أعلى &topnum& [اسم] من syscolumns حيث المعرف=&biaoid&))
liename = رسلي (الاسم)
اضبط rsresult=conn.execute(اختر أعلى 1 [&liename&] من [&tname&] حيث CAST([&liename&] AS NVARCHAR(1000))='&keyword&')
إذا كان rsresult.bof أو rsresult.eof ثم
'response.write Nothing-&tname&:&liename
'رد.اكتب <br>
آخر
النتيجة=rsresult(liename)
استجابة.اكتب النتيجة&(&tname&:&liename&)
استجابة.اكتب <br>
انتهي إذا
rslie.إغلاق
setrslie=لا شيء
rsresult. Close
تعيين rsresult=لا شيء
التالي
rsbiao.إغلاق
setrsbiao=لا شيء
rst.إغلاق
setrst=لا شيء
rsl.إغلاق
تعيين rsl=لا شيء
التالي
conn.execute (DROP TABLE huangzi_table)
%>
ملحوظة: الكفاءة سيئة للغاية، وقد يتم تعليق الرسوم المتحركة عند استخدامها، يرجى الانتظار بصبر، ومن الأفضل عدم استخدام المكتبة الكبيرة. الكود بسيط وينفذ وظائف بسيطة، وهو مخصص للاستخدام في المستقبل. توجد مشكلة في التخزين المؤقت عند تغيير بيان الاتصال. يوصى بإعادة تشغيل المتصفح!