قاعدة البيانات الخلفية:
[مايكروسوفت أكسس]
و
[مايكروسوفت SQL خادم]
بعد الاستبدال، يجب على كود ASP الانتباه إلى بعض الأماكن التي تحتاج إلى تعديل:
[1] مشاكل الاتصال (مثال)
[مايكروسوفت أكسس]
constr = "DBQ=c:dataclwz.mdb; DRIVER={برنامج تشغيل Microsoft Access (*.mdb)}"
[مايكروسوفت SQL خادم]
constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd="
[2] وظائف مماثلة (مثال)
[1]DATEDIFF(datepart, startdate, enddate)
خيارات معلمة "datepart" هي كما يلي:
وصف الإعداد ————————————
[مايكروسوفت أكسس]
yearyyyy
ربع ف
شهر م
عدد أيام السنة ذ
يوم
أيام الأسبوع ث
تشو دبليو دبليو
ساعات ح
دقيقة
ثواني
[Microsoft Sql Server]
سنة yyyy
ربع ف ف، ف
شهر مم، م
يوم من السنة دي، ذ
يوم د، د
أسبوع أسبوع، رطب
ساعة ه
دقيقة ميل، ن
الثانية سس، س
ميلي ثانية
----------------------
إنها نفس الشيء في الأساس، لكن انتبه عند الكتابة،
[Microsoft Access] أضف علامات الاقتباس، مثل: datediff('d',enddate,'2004/08/01')
[Microsoft Sql Server] غير مطلوب، مثل: datediff(d,enddate,'2004/08/01')
[2] يمكن لـ [Microsoft Access] استخدام وظائف تحويل نوع البيانات مثل cstr، و
في [Microsoft Sql Server]، استخدم وظيفة التحويل أو الإرسال، مثل:
تحويل (varchar، [المبلغ]) وما إلى ذلك.
[3] [مايكروسوفت إس كيو إل سيرفر]
للحصول على الوقت الحالي، استخدم getdate، وما إلى ذلك...
[3] البيانات
[مايكروسوفت SQL خادم]
متاح
قضية
متى
متى
...
آخر
نهاية
بيان، في حين
[مايكروسوفت أكسس]
غير معتمد.
[Microsoft Access] أيضًا لا يدعم العبارة بين
يمكن كتابة [Microsoft Sql Server] على النحو التالي:
[التاريخ] بين @date1 و@date2
[4] جدول الاستعلام
[مايكروسوفت SQL خادم]
يمكن الاستعلام عنه من خلال الانضمام إلى ثلاثة جداول أو أكثر، و
[مايكروسوفت أكسس]
يبدو أنه يمكن ضم جدولين فقط للاستعلام (سيتم تأكيد ذلك من قبل الهيئة).
ويمكن لـ [Microsoft Sql Server] استخدام الموصلات "*=" و"=*". [5] القسمة على صفر المسألة
[مايكروسوفت أكسس]
عندما يكون المقسوم عليه صفرًا، يتم تجاهل السجلات ذات الصلة تلقائيًا، و
[مايكروسوفت SQL خادم]
سيتم الإبلاغ عن خطأ وسيتم إنهاء الاستعلام. حذف الرمز:
[مايكروسوفت أكسس]
يمكنك كتابتها على النحو التالي: احذف * من [الجدول]
[مايكروسوفت SQL خادم]
لا يمكن كتابته إلا بهذه الطريقة: احذف من [الجدول]
في كثير من الأحيان سيتم الإبلاغ عن خطأ
________________________________________
التاريخ الحالي:
[مايكروسوفت أكسس]
استخدم التاريخ ()
[مايكروسوفت SQL خادم]
باستخدام getdate()، إذا كانت قاعدة البيانات قد تغير النوع، فيمكنك إضافة هذا إلى رمز ASP:
إذا كان inStr(constr،"Microsoft Access") > 0، فحينئذٍ
sqlstr=[مايكروسوفت أكسس][رمز SQL]
آخر
sqlstr=[Microsoft Sql Server][رمز SQL]
نهاية إذا
(البناء-سلسلة الاتصال)
بهذه الطريقة، حتى لو تم تغيير قاعدة البيانات، ليست هناك حاجة لتغيير استعلام قاعدة البيانات وتحديث التعليمات البرمجية.
بالإضافة إلى ذلك: هناك سجلات حقول صحيحة وخاطئة في الوصول، ولكن لا يوجد سوى سمينت في SQL في المقابل، إذا كان هناك "اسم الحقل = صحيح" في الوصول، فيجب تغييره إلى "اسم الحقل = 1" في SQL.
تستخدم معظم برامج ASP المجانية الموجودة على الإنترنت قاعدة بيانات الوصول. ومع ذلك، فإن قاعدة بيانات الوصول، باعتبارها نظام قاعدة بيانات مستقل صغير ومتوسط الحجم، غالبًا ما تكون مرهقة عند استخدامها لتطبيقات مواقع الويب التي تحتوي على كميات كبيرة من الزيارات والبيانات. من المعتقد عمومًا أن أداء قاعدة بيانات الوصول سيبدأ في الانخفاض بشكل ملحوظ عندما يتجاوز 50 مليونًا، وبعد أن يتجاوز 100 مليونًا، ستصبح مشكلات الأخطاء وبطء التشغيل أكثر وضوحًا. على الرغم من أننا يمكن أن نبذل قصارى جهدنا للتحسين من منظور البرنامج لتحسين الأداء كما فعلنا بعد Dongwang 7.0، إلا أنه لا يمكن أن يحل المشكلة بشكل أساسي.
في الوقت الحالي، ربما يكون استخدام قاعدة بيانات Microsoft SQL Server هو الطريقة الأكثر ترجيحًا، بالطبع، يمكنك أيضًا استخدام قواعد بيانات أخرى مثل Oracle وMySQL وما إلى ذلك، ولكن لإعادة الكتابة، نظرًا لأن كلاهما من منتجات Microsoft، وإعادة الكتابة في SQL Server. ينبغي أن تكون الطريقة الأكثر توفيرا للعمالة.
1. المتطلبات الأساسية لإعادة الكتابة:
تم تثبيت SQL Server2000 على النظام وتم تطبيق تصحيح SP3؛ وتم تثبيت الوصول إلى مجموعة Office؛ استخدم محررًا يدعم تحرير النص العادي ويحتوي على عرض رقم السطر، ولكن بالطبع يمكن أيضًا استخدام FrontPage2003، لكن عرض رقم السطر في الإصدار السابق لم يكن سهل الاستخدام.
متطلبات القدرة الشخصية: أن تكون قادرًا على فهم بناء جملة ASP الأساسي والوصول إلى عمليات قاعدة البيانات والعمليات الأساسية لـ SQL Server Enterprise Manager.
2. بشكل عام، هناك حالتان لإعداد قاعدة البيانات
:
1. يوفر البرنامج تنسيق قاعدة بيانات SQL: يوجد ملف MDF، أو يتم توفير ملف نصي SQL (اللاحقة .sql) لإنشاء قاعدة بيانات SQL.
إذا كان هناك ملف mdf، فيمكنك إرفاقه مباشرة باستخدام Enterprise Manager. إذا تم توفير ملف البرنامج النصي SQL، فاستخدم Enterprise Manager لإنشاء قاعدة بيانات SQL بنفسك، ثم استخدم محلل الاستعلام في Enterprise Manager لتشغيل. البرنامج النصي لإنشاء جدول قاعدة البيانات.
قاعدة البيانات التي تم إنشاؤها بهذه الطريقة لا تحتاج في الأساس إلى إعادة كتابتها.
2. لا يوفر معظمها قاعدة بيانات SQL أو ملفات نصية في الوقت الحالي، يتعين عليك القيام بذلك بنفسك. وهذه أيضًا هي المشكلة الرئيسية التي يحلها منشورنا. بشكل عام، سيوفر مثل هذا البرنامج قاعدة بيانات وصول، بحيث يمكنك استخدام Enterprise Manager لاستيراد قاعدة بيانات الوصول، بعد الاستيراد، تحتاج إلى إعادة كتابة الأشياء التالية:
بالمقارنة مع الوصول الأصلي، أعد كتابة الجزء التالي:
(1) لا تحتوي جداول قاعدة بيانات SQL على حقول تلقائية، لذلك يتم تحويل الحقول التلقائية الأصلية الموجودة في Access إلى حقول عادية وتحتاج إلى تغييرها يدويًا إلى نوع التعريف، مع زيادة قدرها 1.
(2) بالنسبة لجميع حقول الوقت، إذا تم تحديد قيمة افتراضية، فيجب أن تكون الآن () ويجب تغييرها إلى getdate ()
(3) لا يتم بشكل عام تقديم القيم الافتراضية للحقول الأصلية تلقائيًا ويجب إضافتها يدويًا مقابل حقول الجدول الأصلي.
(4) نظرًا لاختلاف قواعد البيانات، تتغير العديد من أنواع حقول الوصول وSQL بعد التحويل، على سبيل المثال، سيتم تحويل حقل "ما إذا كان" الأصلي إلى بت أو int، وسيتم تحويل حقل المذكرة إلى نص طويل، وسيتم تحويل حقل النص. بشكل عام، لن يؤثر ذلك على تشغيل البرنامج إذا كانت هناك مشكلة، فسنناقشها في قسم إعادة كتابة البرنامج أدناه.
(5) إذا كنت تريد استخدام برنامج For SQL الذي يستخدم الإجراءات المخزنة، فيجب أن يكون لديك طريقة لإنشاء قاعدة بيانات SQL في البرنامج نفسه: أن يكون لديك ملف قاعدة بيانات SQL خاص به، أو برنامج نصي SQL إذا لم يكن الأمر كذلك، فاستخدم import The لا يمكن لطريقة قاعدة بيانات الوصول إنشاء إجراء مخزن، لذا من الأفضل أن تتخلى عن هذا بالنسبة لإصدار برنامج SQL، استخدم نفس الإصدار من برنامج For Access، وقم باستيراد قاعدة بيانات الوصول، ثم استخدم طريقة إعادة الكتابة التالية لتغييرها إلى إصدار SQL برمج نفسك.
3. لإعادة كتابة سلسلة الاتصال،
يرجى الرجوع إلى هذا القسم من Dongwang، المخصص للوصول وSQL على التوالي.
DimConnStr
إذا IsSqlDataBase = 1 ثم
معلمات اتصال قاعدة بيانات SQL: اسم قاعدة البيانات، كلمة مرور المستخدم، اسم المستخدم، اسم الاتصال (استخدم محليًا محليًا، استخدم IP في الخارج)
خافت SqlDatabaseName،SqlPassword،SqlUsername،SqlLocalName
SqlDatabaseName = "dvbbs7"
كلمة المرور = ""
SqlUsername = "dvbbs"
SqlLocalName = "(محلي)"
ConnStr = "Provider = Sqloledb; معرف المستخدم = " & SqlUsername & "؛ كلمة المرور = " & SqlPassword & "؛ الكتالوج الأولي = " & SqlDatabaseName & "؛ مصدر البيانات = " & SqlLocalName & ";"
آخر
'بالنسبة للمستخدمين المجانيين، يرجى تعديل عنوان قاعدة البيانات واسم قاعدة البيانات في دليل البيانات وفقًا لذلك، على سبيل المثال، تغيير dvbbs6.mdb إلى dvbbs6.asp
'http://www.downcodes.com/
ديسيبل = "البيانات/fengerqingqing.mdb"
ConnStr = "الموفر = Microsoft.Jet.OLEDB.4.0؛ مصدر البيانات = "& Server.MapPath(db)
نهاية إذا
على خطأ استئناف التالي
تعيين conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
بالطبع، إذا كنت تستخدم SQL، فيمكن حذف بيان الوصول، أي بعد آخر وقبل استئناف الخطأ بعد ذلك، يصبح الأمر كما يلي:
Dim ConnStr
معلمات اتصال قاعدة بيانات SQL: اسم قاعدة البيانات، كلمة مرور المستخدم، اسم المستخدم، اسم الاتصال (استخدم محليًا محليًا، استخدم IP في الخارج)
خافت SqlDatabaseName،SqlPassword،SqlUsername،SqlLocalName
SqlDatabaseName = "dvbbs7"
كلمة المرور = ""
SqlUsername = "dvbbs"
SqlLocalName = "(محلي)"
ConnStr = "Provider = Sqloledb; معرف المستخدم = " & SqlUsername & "؛ كلمة المرور = " & SqlPassword & "؛ الكتالوج الأولي = " & SqlDatabaseName & "؛ مصدر البيانات = " & SqlLocalName & ";"
على خطأ استئناف التالي
تعيين conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
أكثر إيجازًا وكتابة على النحو التالي:
تعيين conn = Server.CreateObject("ADODB.Connection")
conn.open "الموفر = Sqloledb؛ معرف المستخدم = sa؛ كلمة المرور = 1234567؛ الكتالوج الأولي = dvbbs7؛ مصدر البيانات = (محلي)؛"
أعد كتابة اسم قاعدة البيانات ومصدر البيانات والمستخدم وكلمة المرور وفقًا لموقفك الفعلي.
4. إعادة كتابة البرنامج
هناك حالتان:
1. إذا كنت محظوظًا وحصلت على برنامج For SQL، إذا لم تكن هناك مشكلة في عملية إنشاء قاعدة البيانات المذكورة أعلاه، فيمكن تشغيل البرنامج بشكل أساسي. إذا كان هناك خطأ، فهو مجرد خطأ في البرنامج نفسه تعديله لم تتم مناقشته في هذا المنشور ولن يتم وصف المحتوى بالتفصيل.
2. في معظم الحالات، يكون البرنامج نفسه مخصصًا لـ Access. ويكمن الاختلاف عن برنامج SQL بشكل أساسي في عبارات استعلام SQL المستخدمة في البرنامج. لاحظ أن عبارات استعلام SQL هي جزء لا غنى عنه في تطبيقات قواعد البيانات. إن بناء الجملة الذي تستخدمه البرامج سواء كان لـ SQL أو For Aceess هو نفسه تقريبًا، ولكن هناك بعض الاختلافات الدقيقة التي تجعل البرنامج غير عالمي ما نحتاجه المحتوى الرئيسي للتعديل. الأجزاء التي تحتاج إلى تعديل بشكل عام هي كما يلي:
(1) مشكلة وظيفة الوقت: تختلف وظيفة الوقت في قاعدة بيانات SQL عن وظيفة الوصول. الوظيفة الأكثر شيوعًا هي الحصول على الوقت الحالي () وSQL هو getdate (). لذلك، أينما يتم استخدام now() في عبارة Where، يجب تغييرها إلى getdate()؛ لاحظ أنه يجب أيضًا استخدام وظيفة now() في برنامج asp نفسه الاستعلامات أو بيانات التنفيذ تأكد من عدم تغييرها.
(2) وظيفة مقارنة الوقت: datediff('d','time1','time2') هذا هو التنسيق المستخدم لاستعلامات الوصول. يجب إزالة علامات الاقتباس هذه في SQl وفي نفس الوقت، يمكن إضافة # قبل و بعد تنسيق الوقت، يجب أيضًا إزالة هذا. وبالمثل، يشير هذا أيضًا إلى عبارة SQL، ويجب أن تظل عبارة asp سليمة.
(3) تمثيل القيمة الخالية: في الوصول، يتم التعبير عن الحكم على القيمة الخالية بشكل عام من خلال ما إذا كان ""، ولكن غالبًا ما يحدث هذا خطأ في SQL إذا واجهت مشكلة خطأ أو كان البرنامج لا يعمل بشكل طبيعي، فيمكنك تغييره للحكم على هذا النحو: حيث (الاسم فارغ)
(4) حكم القيمة الصواب والخطأ: يمكنك استخدام =true و=false للحكم في الوصول، ولكنه سيؤدي إلى حدوث خطأ في SQL. لذلك، في استعلام SQL أو بيان التنفيذ، يجب تغيير هذا النوع من الحكم إلى =1 و=0 على التوالي. ملاحظة: على الرغم من أن بعض البرامج تكتب = "صحيح"، إلا أن هذا الحقل من نوع الحرف بسبب علامات الاقتباس، ولا يمكنك تغييره إلى =1، فقط احتفظ به كما هو.
ما ورد أعلاه هو الأماكن الأكثر شيوعًا لإعادة الكتابة، وهناك أماكن أقل شيوعًا إذا واجهتها، يمكنك الرد هنا لمناقشتها.
5. تصحيح أخطاء البرنامج
يوصى باستخدام محرر بأرقام الأسطر، لأنه من غير المرجح أن تتم إعادة الكتابة أعلاه عن طريق البحث المباشر في الكود المصدري للبرنامج، ومن الصعب العثور عليه كله.
الطريقة التي أتبعها بشكل عام هي كما يلي: بعد اكتمال إعادة كتابة قاعدة البيانات، يتم تصحيح أخطاء البرنامج مباشرة، وبعد حدوث خطأ، انظر إلى رسالة الخطأ وابحث عن سطر التعليمات البرمجية للملف المقابل، لكن السبب الجذري غالبًا ما لا يكون كذلك على سبيل المثال، بيان الخطأ هو: conn.execute(sql)، لكن هذه الجملة نفسها ليست خاطئة، سبب الخطأ هو سلسلة SQL الموجودة بالداخل، ثم ابحث عن كيفية إنشاء سلسلة SQL وقم بتعديلها وفقًا لذلك لطريقة تعديل البرنامج المذكورة أعلاه.
بعد استيراد قاعدة البيانات، يجب إعادة كتابة الحقول المضافة تلقائيًا، ويجب زيادة طول جميع الأنواع الرقمية. ومن الأفضل استخدام النظام العشري.
يتم فقدان جميع القيم الافتراضية. الأنواع الرقمية وأنواع التاريخ بشكل رئيسي.
يجب تغيير الكل الآن ()، والوقت ()، والتاريخ () إلى getdate ().
يجب تغيير جميع datediff('d', time1, time2) إلى datediff(day, time1, time2).
من الممكن ألا يمكن استخدام بعض أنواع الصواب/الخطأ ويجب تغييرها إلى 1/0.
يجب استخدام نوع الملاحظة من خلال cast(column as varchar).
يجب تغيير CursorType إلى 1، أي أنه يجب إعطاء المعلمة الرقمية الأولى كـ 1 عند فتح قاعدة البيانات، وإلا فقد لا يتم عرض السجل بالكامل.
عندالتحويل من isnull(rowname) إلى Rowname = null
، لم يتم تعيين نوع الترقيم التلقائي في قاعدة بيانات ACCESS على نوع الترقيم التلقائي بواسطة SQL Server. نحتاج إلى إضافة هوية إلى بيان إنشاء SQL للإشارة إلى الترقيم التلقائي!
أثناء التحويل، يتم تعيين SQL SERVER افتراضيًا على نوع التاريخ والوقت الصغير للحقول المرتبطة بالتاريخ، ومن الأفضل تغييره إلى نوع التاريخ والوقت، لأن نوع التاريخ والوقت له نطاق أكبر من نوع التاريخ والوقت الصغير. في بعض الأحيان، عند استخدام نوع التاريخ والوقت الصغير، يفشل التحويل، ولكن عند استخدام نوع التاريخ والوقت، يكون التحويل ناجحًا.
عبارات SQL المستخدمة لتشغيل قاعدتي البيانات ليست متماثلة تمامًا، على سبيل المثال: عند حذف السجلات في قاعدة بيانات ACCESS، استخدم: "delete * from user Where id=10"، بينما عند حذف قاعدة بيانات SQL SERVER، استخدم: ". احذف المستخدم حيث المعرف = 10".
تختلف وظائف التاريخ. عند معالجة قاعدة بيانات ACCESS، يمكن استخدام وظائف مثل date() وtime(). ومع ذلك، عند معالجة قاعدة بيانات SQL SERVER، لا تستخدم سوى وظائف مثل datediff وdateadd يمكن استخدامها، ولكن ليس التاريخ ()، والوقت () وغيرها من الوظائف.
عند معالجة قاعدة بيانات ACCESS، يمكن استخدام بعض وظائف VB، مثل وظيفة cstr()، مباشرة في عبارة SQL، ولكن عند معالجة قاعدة بيانات SQL SERVER، لا يمكن استخدامها.
يقارن الجدول التالي قاعدة بيانات Microsoft Access (قاعدة بيانات Microsoft Access: مجموعة من البيانات والكائنات، مثل الجداول أو الاستعلامات أو النماذج، المرتبطة بموضوع أو غرض محدد. يُستخدم محرك قاعدة بيانات Microsoft Jet لإدارة البيانات.) و مشروع Microsoft Access (مشروع Microsoft Access: ملفات الوصول التي تتصل بقاعدة بيانات Microsoft SQL Server وتستخدم لإنشاء تطبيقات العميل/الخادم. لا يحتوي ملف المشروع على أي بيانات أو كائنات قائمة على البيانات (مثل الجداول أو طرق العرض). تتضمن خصائص الحقول لأنواع البيانات البيانات المنطقية والعددية والطويلة والعملة والمفردة والمزدوجة والتاريخ والسلسلة والمتغير (افتراضي)).
نوع بيانات Microsoft Access نوع بيانات SQL Server نعم/لا (نوع بيانات نعم/لا: نوع بيانات حقل يستخدم للحقول التي تحتوي على قيمتين محتملتين فقط (مثل نعم أو لا، صحيح أو خطأ). القيم الخالية ليست كذلك مسموح.) بت (نوع بيانات البت: في مشاريع Access، نوع بيانات يخزن قيمة 1 أو 0. يقبل القيم الصحيحة بخلاف 1 و0، لكنه يفسرها دائمًا على أنها 1.)
الرقم (نوع البيانات الرقمية: نوع بيانات حقل في قواعد بيانات Microsoft Access يستخدم للبيانات الرقمية التي سيتم استخدامها في العمليات الحسابية. ومع ذلك، إذا كنت تريد عرض القيم النقدية أو حسابها، فيجب عليك استخدام نوع بيانات العملة.) (بايت) tinyint (نوع بيانات tinyint: نوع بيانات أحادي البايت (8 بت) في مشروع Access، يُستخدم لتخزين أعداد صحيحة تتراوح من 0 إلى 255.)
رقم (عدد صحيح) صغير (نوع بيانات صغير: نوع بيانات 2 بايت (16 بت) في مشروع Access، يخزن الأرقام بين -2^15(-32,768) و2^15-1(32,767) .)
رقم (عدد صحيح طويل) int (نوع بيانات int: نوع بيانات 4 بايت (32 بت) في مشروع Access، تخزين القيم بين -2^31(-2,147,483,648) و2^31-1(2,147,483,647) رقم .)
رقم (نوع النقطة العائمة أحادية الدقة) حقيقي (نوع البيانات الحقيقي: في مشاريع Access، نوع بيانات رقمي تقريبي بدقة 7 أرقام، تتراوح القيم الموجبة من 1.18E-38 إلى 3.40E+38، القيم السالبة يتراوح نطاق القيمة تقريبًا من -1.18E-38 إلى -3.40E+38، ويمكن أيضًا أن يكون 0).
(لا يوجد نوع بيانات مكافئ) bigint (نوع بيانات كبير: نوع بيانات 8 بايت (64 بت) في مشروع Access، مخزن بين -2^63 (-9,223,372,036,854,775,808) و2^63-1 (9,223,372,036,854,775,807) ).
الرقم (نقطة عائمة مزدوجة الدقة) float (نوع البيانات العائمة: في مشاريع Access، نوع بيانات رقمي تقريبي بدقة 15 رقمًا. يتراوح نطاق القيم الموجبة التي يخزنها تقريبًا من 2.23E-308 إلى 1.79E+ 308، يتراوح نطاق القيمة السالبة تقريبًا من -2.23E-308 إلى -1.79E+308، ويمكن أيضًا أن يكون 0).
العملة (نوع البيانات "العملة": نوع بيانات في قواعد بيانات Microsoft Access يُستخدم للحسابات المتعلقة بالعملة أو حسابات النقاط الثابتة حيث تكون الدقة في غاية الأهمية.) المال (نوع بيانات المال: في مشاريع Access، يُستخدم لتخزين العملة البيانات نوع القيمة، نطاق القيمة من -922,337,203,685,477.5707 إلى 922,337,203,685,477.5807، الدقة هي جزء من عشرة آلاف من وحدة العملة.)
Smallmoney (نوع بيانات Smallmoney: نوع بيانات يخزن قيم العملة في مشروع Access، نطاق القيمة من - 214,748.3648 إلى 214,748.3647، بدقة تصل إلى جزء من عشرة آلاف من الوحدة النقدية. وعندما يتم عرض قيم الأموال الصغيرة، يتم تقريبها إلى منزلتين عشريتين.)
عشري/رقمي (نوع البيانات العشرية (قاعدة بيانات الوصول): نوع البيانات الرقمية الدقيق المستخدم لتخزين القيم من -10^38-1 إلى 10^38-1. يمكن النطاق الرقمي (الحد الأقصى لإجمالي الأرقام) والدقة (الفاصلة العشرية) يتم تحديد الحد الأقصى لعدد الأرقام على اليمين) عشري (نوع البيانات العشرية (مشروع الوصول): نوع البيانات الرقمي الدقيق المستخدم لتخزين القيم من -10 ^ 38-1 إلى 10 ^ 38-1. النطاق الرقمي (الحد الأقصى إجمالي الأرقام) يمكن تحديد عدد) والدقة (الحد الأقصى لعدد الأرقام على يمين العلامة العشرية).)
رقمي (نوع البيانات الرقمية: في مشاريع Access، نوع بيانات رقمي دقيق بقيم من -10^38 -1 إلى 10^38-1 يمكن تحديد النطاق الرقمي (الحد الأقصى لإجمالي عدد الأرقام) والدقة (الحد الأقصى لعدد الأرقام على يمين العلامة العشرية).
التاريخ/الوقت (نوع بيانات "التاريخ/الوقت": نوع بيانات في قاعدة بيانات Access، يُستخدم لتخزين معلومات التاريخ والوقت.) وقت التاريخ (نوع بيانات التاريخ والوقت: في مشاريع Access، نوع بيانات التاريخ والوقت، يتراوح من 1753 من 1 يناير إلى 31 ديسمبر 9999، تبلغ الدقة ثلاثمائة من الثانية، أو 3.33 مللي ثانية)
Smalldatetime (نوع بيانات Smalldatetime: نوع بيانات التاريخ والوقت في مشروع Access، والدقة ليست جيدة مثل وقت التاريخ والوقت. البيانات نوع نطاق قيمة البيانات من 1 يناير 1900 إلى 6 يونيو 2079، بدقة دقيقة واحدة).
"الرقم التلقائي" (نوع البيانات "الترقيم التلقائي": نوع بيانات حقل في قاعدة بيانات Microsoft Access يقوم تلقائيًا بتخزين رقم فريد لكل سجل عند إضافة سجل جديد إلى الجدول. يمكن إنشاء ثلاثة أنواع من الرقم: الرقم التسلسلي والرقم العشوائي والرقم المتزامن معرف النسخ المتماثل ) (تزايدي) int (نوع البيانات int: نوع بيانات 4 بايت (32 بت) في مشروع Access، مخزن في -2^31 (-2,147,483,648) و2 ^31-1(2,147,483,647)) ( يتم تعريف سمة الهوية).
نص (نوع البيانات "نص": نوع بيانات حقل في قاعدة بيانات Microsoft Access. يمكن أن يحتوي نوع البيانات "نص" على ما يصل إلى 255 حرفًا، أو عدد أصغر من الأحرف المحددة بواسطة خاصية FieldSize.) (n) varchar( n ) (نوع البيانات varchar(n): نوع بيانات متغير الطول في مشاريع Access بحد أقصى 8000 حرف ANSI.)
nvarchar(n) (نوع بيانات nvarchar(n): في مشاريع Access، بيانات متغيرة الطول النوع الذي يمكن أن يحتوي على ما يصل إلى 4000 حرف Unicode تشغل أحرف Unicode وحدتي بايت لكل حرف وتدعم كافة الأحرف الدولية.)
الملاحظات (نوع بيانات "الملاحظات": نوع بيانات الحقل في قاعدة بيانات Microsoft Access. يمكن أن يحتوي حقل "الملاحظات" على ما يصل إلى 65535 حرفًا.) نص (نوع البيانات النصية: نوع بيانات متغير الطول في مشروع Access، يمكن تخزينه ما يصل إلى 2^31-1(2,147,483,647) حرفًا؛ الطول الافتراضي هو 16).
كائن OLE (نوع بيانات "كائن OLE": أحد أنواع البيانات للحقول المستخدمة في الكائنات التي تم إنشاؤها في تطبيقات أخرى والتي يمكن ربطها أو تضمينها (إدراجها) في قاعدة بيانات Access.) الصورة (نوع بيانات الصورة: في Access في المشروع ، يمكن لنوع البيانات متغير الطول تخزين ما يصل إلى 2^31-1 (2,147,483,647) بايت من البيانات الثنائية. يتم استخدام نوع بيانات الصورة لتخزين BLOB (الكائنات الثنائية الكبيرة)، مثل الصور والمستندات والأصوات والملفات. الكود المترجم.)
معرف النسخ المتماثل المتزامن (المعروف أيضًا باسم المعرف الفريد العمومي (GUID): في قواعد بيانات Access، يتم استخدام حقل مكون من 16 بايت لإنشاء معرف فريد للنسخ المتماثل المتزامن. يتم استخدام المعرفات الفريدة العمومية (GUID) لتحديد النسخ المتماثلة ومجموعات النسخ المتماثلة والجداول والسجلات والكائنات الأخرى. قاعدة بيانات Access، يشير المعرف الفريد العمومي (GUID) إلى معرف النسخ المتماثل المتزامن. (GUID)) المعرف الفريد (نوع بيانات المعرف الفريد: في مشاريع Access، المعرف الفريد العمومي (GUID) ذو 16 بايت.) (ينطبق فقط على SQL Server 7.0 أو الإصدار الأحدث)
الارتباط التشعبي ("الارتباط التشعبي" نوع البيانات: نوع بيانات حقل قاعدة بيانات Access الذي يخزن عناوين الارتباطات التشعبية. يمكن أن تحتوي العناوين على ما يصل إلى أربعة أجزاء ويتم كتابتها بتنسيق بناء الجملة التالي: Displaytext#address#subaddress#.) char (نوع بيانات char) : في مشاريع Access، نوع بيانات ثابت الطول يمكن أن يحتوي على ما يصل إلى 8000 حرف ANSI )،
nchar (نوع بيانات nchar: في مشاريع Access، نوع بيانات ثابت الطول يمكن أن يحتوي على ما يصل إلى 4000 حرف Unicode. Unicode لكل منهما. يحتل الحرف وحدتي بايت، ويدعم كافة الأحرف الدولية)، varchar، nvarchar (تم تعيين سمة الارتباط التشعبي على نعم).
(لا يوجد نوع بيانات مكافئ) varbinary (نوع البيانات varbinary: نوع بيانات متغير الطول في مشاريع Access يمكنه تخزين ما يصل إلى 8000 بايت من البيانات الثنائية.)
(لا يوجد نوع بيانات مكافئ) Smallint (نوع بيانات صغير: نوع بيانات 2 بايت (16 بت) في مشروع Access، مخزن بين -2^15(-32,768) و2^15-1(32,767) ).
(لا يوجد نوع بيانات مكافئ) الطابع الزمني (نوع بيانات الطابع الزمني: في مشاريع Access، نوع بيانات يتم تحديثه تلقائيًا في كل مرة يتم فيها إدراج صف أو تحديثه. القيمة الموجودة في عمود الطابع الزمني ليست بيانات وقت وتاريخ، ولكنها ثنائية (8) أو متغيرة (8) يشير إلى ترتيب تعديل البيانات).
(لا يوجد نوع بيانات مكافئ) Charnchar
(لا يوجد نوع بيانات مكافئ) sql_variant (نوع بيانات sql_variant: نوع بيانات في مشروع Access يقوم بتخزين قيم أنواع بيانات متعددة بخلاف النص وntext والصورة والطابع الزمني وأنواع sql_variant. في الأعمدة أو المعلمات أو المتغيرات أو المستخدمة في القيمة المرجعة لوظيفة محددة من قبل المستخدم).
(لا يوجد نوع بيانات مكافئ) محدد من قبل المستخدم (نوع بيانات محدد من قبل المستخدم: في قاعدة بيانات Microsoft SQL Server، يُسمح للمستخدم بتحديد تعريف نوع البيانات الموجودة في عمود باستخدام تعريفات أنواع بيانات النظام الموجودة. القواعد و لا يمكن ربط القيم الافتراضية إلا بـ "محددة بنوع بيانات محدد من قبل المستخدم".
ملاحظة: في مشروع Access أو قاعدة بيانات SQL Server، تشير البادئة "n" إلى "البلد/المنطقة"، مما يعني أن نوع البيانات هذا ممكّن بواسطة Unicode . في قواعد بيانات Access، يتم تمكين Unicode افتراضيًا لجميع أعمدة النص.
المشكلات التي يجب الانتباه إليها عند تحويل ACCESS إلى SQL
2006-2-13 16:01:20
يرغب العديد من الأصدقاء في استخدام أساليب برمجة قاعدة بيانات SQL2000، لكنهم يعانون من حقيقة أنهم يتعلمون ACCESS وليس لديهم سوى القليل من الفهم لـ SQL. وهنا أقدم لك المرجع التالي --- طرق واحتياطات تحويل ACCESS إلى SQL2000. بادئ ذي بدء، ما أتحدث عنه هو التحويل بين ACCESS2000 وSQL2000، ولم أجرب الآخرين بعد، وآمل أن تتمكن من تجربة المزيد، ويجب أن تكون هناك طريقة؛
2. طريقة التحويل
1. افتح "مصدر قاعدة البيانات" في "الأدوات الإدارية" ضمن "لوحة التحكم"؛
2. انقر فوق "إضافة" لإضافة مصدر بيانات جديد، ثم حدد "DriveromicrosoftAccess" في عمود التحديد.
(*.mdb)"، سيظهر مربع بعد الانتهاء.
أدخل الاسم الذي تريد كتابته في "مصدر قاعدة البيانات". لقد قمت بتسميته "ABC"، مما يشير إلى عدم الحاجة إلى تعبئته. ثم اضغط على الاختيار أدناه للعثور على عنوان قاعدة البيانات واختيارها (ملاحظة، يرجى عمل نسخة احتياطية لقاعدة بيانات ACCESS أولاً)، ثم التأكيد.
يتم إنشاء مصدر البيانات هنا، وكل ما تبقى هو التحويل.
3. افتح SQL2000 Enterprise Manager، وأدخل قاعدة البيانات، وأنشئ قاعدة بيانات فارغة جديدة "ABC"؛
4. حدد قاعدة البيانات التي تم إنشاؤها حديثًا، وانقر بزر الماوس الأيمن، ثم حدد "استيراد البيانات" ضمن "جميع المهام"، ثم انقر فوق "التالي" للمتابعة؛
5. حدد "DriverdoMicrosoft Access (*.mdb)" في القائمة المنسدلة لمصدر قاعدة البيانات في "User/System DSN"، حدد "ABC" الذي أضفته للتو وانقر فوق "التالي"؛
6. لا يحتاج "الغرض" إلى التعديل، حدد الخادم (عادةً ما يكون جهازك الخاص "محليًا"، ويمكنك أيضًا تحديد عنوان الخادم أو عنوان الشبكة المحلية لتحديد ما إذا كانت أذوناتك يمكن تشغيلها)، ويعني "استخدام مصادقة WINDOWS" الاستخدام. بالنسبة لعملية هوية مسؤول النظام الخاصة بك، يمكن استخدام "استخدام التحقق من عملية هوية SQL" لعمليات موقع الويب، ويوصى باستخدام الخيار الأخير؛
7. بعد تحديد "استخدام عملية التحقق من هوية SQL"، قم بملء اسم المستخدم وكلمة المرور الخاصين بك. لقد اخترت الأرقام الافتراضية للنظام "sa" و"****" بالنسبة لقاعدة البيانات، حدد "ABC" الذي تم إنشاؤه حديثًا "الخطوة التالية"؛
8. هناك خياران منفردان في هذه الخطوة، "نسخ الجداول وطرق العرض من مصدر البيانات" و"استخدام أمر استعلام لتحديد البيانات المراد نقلها". حدد الخيار الأول وانقر فوق "التالي" للمتابعة؛
9. ستظهر هنا جداول قاعدة بيانات ACCESS الخاصة بك. انقر فوق "تحديد الكل" وانتقل إلى الخطوة التالية؛
10. "معالج استيراد/تصدير DTS"، تأكد من تحديد "التشغيل الآن" وانقر فوق "التالي".
11. اضغط على "إنهاء" للمتابعة؛
12. في هذه الخطوة، سترى بياناتك يتم استيرادها إلى SQL2000. عندما تظهر الكلمات "تم استيراد جداول XXX بنجاح إلى قاعدة البيانات"، وتوجد علامات اختيار خضراء أمام جميع الجداول، فهذا يعني أنه تم استيراد جميع البيانات.
في
حالة حدوث مشكلة أثناء العملية أو وجود علامة * حمراء أمام الجدول، فهذا يعني أنه لم يتم استيراد الجدول بنجاح في هذا الوقت، فأنت بحاجة إلى العودة والتحقق مما إذا كانت العملية صحيحة أم لا
تعديل البيانات
1. نظرًا لعدم وجود "ترقيم تلقائي" في SQL2000، ستصبح الحقول التي قمت بتعيينها باستخدام "الترقيم التلقائي" حقولًا غير فارغة. في هذه الحالة، يجب عليك تعديل هذه الحقول يدويًا وتحديد "نعم" لـ "وضع علامة". البذرة "1" والزيادة "1"
2. بالإضافة إلى ذلك، بعد تحويل ACCESS2000 إلى SQL2000، سيتم تحويل الحقول ذات السمة الأصلية "نعم/لا" إلى "بت" غير فارغة. في هذا الوقت، يجب عليك تعديلها إلى السمة التي تريدها؛
3. بالإضافة إلى ذلك، يجب على الجميع الانتباه إلى فهم وظائف الوقت. هناك العديد من الاختلافات بين ACCESS وSQL.
4. القضايا الميدانية ذات الصلة
1. عند تحويل نوع الترقيم التلقائي في قاعدة بيانات ACCESS، لم يضبطه sqlserver على نوع الترقيم التلقائي. نحتاج إلى إضافة هوية إلى بيان إنشاء SQL للإشارة إلى الترقيم التلقائي!
2. أثناء التحويل، يتم تعيين SQLSERVER افتراضيًا على نوع التاريخ والوقت الصغير للحقول المرتبطة بالتاريخ، ومن الأفضل تغييره إلى نوع التاريخ والوقت، لأن نوع التاريخ والوقت له نطاق أكبر من نوع التاريخ والوقت الصغير. لقد واجهت هذا الموقف عند استخدام نوع التاريخ والوقت الصغير، فشل التحويل، ولكن عند استخدام نوع التاريخ والوقت، كان التحويل ناجحًا.
3. عبارات SQL المستخدمة لتشغيل قاعدتي البيانات ليست متطابقة تمامًا. على سبيل المثال: عند حذف السجلات في قاعدة بيانات ACCESS، استخدم: "delete*fromuserwhereid=10"، ولكن عند حذف قاعدة بيانات SQLSERVER، استخدم: "deleteuserwhereid=". 10".
4. تختلف وظائف التاريخ عند معالجة قاعدة بيانات ACCESS، ويمكن استخدام وظائف مثل date() وtime()، ومع ذلك، عند معالجة قاعدة بيانات SQLSERVER، يمكن استخدام وظائف مثل datediff وdateadd فقط. ()، الوقت () وغيرها من الوظائف.
5. عند معالجة قاعدة بيانات ACCESS، يمكن استخدام بعض وظائف VB، مثل وظيفة cstr()، مباشرة في عبارة SQL، ولكن عند معالجة قاعدة بيانات SQLSERVER، لا يمكن استخدامها.
5. مشاكل البيان ذات الصلة، إضافة الحقول تلقائيًا تحتاج إلى إعادة كتابة. حقل الترقيم التلقائي الذي يتم استخدامه غالبًا في الوصول ليس عبارة عن عدد صحيح يتزايد تلقائيًا بعد استيراده إلى mssql، ويجب تعيينه يدويًا. قم بتغيير "لا" لحقل الترقيم التلقائي المستورد إلى "نعم" و"بذرة". و"مبلغ الزيادة" كلاهما رقم "1" ليصبح رقمًا تلقائيًا.
يتم فقدان جميع القيم الافتراضية. الأنواع الرقمية وأنواع التاريخ بشكل رئيسي
يجب تغيير الكل الآن () والوقت () والتاريخ () إلى getdate ()
يجب تغيير كل datediff('d',time1,time2) إلى datediff(day,time1,time2)
يجب تغيير كل datediff('ww',time1,time2) إلى datediff(week,time1,time2)
يجب تغيير كل datediff('d',time1,time2) إلى datediff(day,time1,time2)
في mssqlserver، هناك العديد من الكلمات المحجوزة غير المتوفرة في الوصول، عند استيراد البيانات إلى mssql، تنشأ مشاكل. عند استيراد mssql، فإنه سيضيف تلقائيًا "[اسم الحقل]" إلى هذه الحقول (بما في ذلك أسماء الجداول في قاعدة البيانات). لذلك، يجب عليك تعديل البرنامج النصي الخاص بك وإضافة أسماء الحقول المقابلة (أو أسماء الجداول، أو تغييرها). اسم الحقل إلى كلمة محجوزة ليست mssql
عند استخدام الوصول لاستخدام الوقت، يحب الجميع استخدام عبارات SQL مثل "select*fromaaaawhiletime="&now()". ومع ذلك، لا توجد وظيفة "now()" في mssql، ولكن يتم استخدام "getdate()"، لذلك يجب استبدال "now()" في كافة عبارات SQL بـ "getdate()".
تختلف وظائف التاريخ في معالجة قاعدة بيانات ACCESS، ويمكن استخدام وظائف مثل date() وtime()، ولكن من أجل
في معالجة قاعدة بيانات SQLSERVER، يمكن استخدام وظائف مثل datediff وdateadd فقط، ولكن لا يمكن استخدام وظائف مثل date() وtime().
أثناء التحويل، يتم تعيين SQLSERVER افتراضيًا على نوع التاريخ والوقت الصغير للحقول المرتبطة بالتاريخ.