سؤال

نحن بصدد ترقية تطبيقنا إلى التوافق الكامل مع Unicode حيث حصلنا مؤخرًا على Delphi 2009 الذي يوفر هذا خارج الصندوق.أبحث عن أي شخص لديه خبرة في ترقية التطبيق لقبول أحرف Unicode.إجابات محددة على أي من الأسئلة التالية.

  • نحن بحاجة إلى تغيير VarChars إلى NVarchar، Char إلى NChar.هل هناك أي مسكتك هنا.
  • نحن بحاجة إلى تحديث كافة عبارات SQL لتضمين N أمام أي سلاسل SQL.لذا، يجب أن يصبح تحديث tbl_Customer set Name = 'Smith' تحديث tbl_Customer set Name = ن'حداد' .هل هناك أي طريقة للتخلي عن هذا بالنسبة لحقول معينة.يبدو غير عادي أن هذا لا يزال مطلوبًا.
  • هل من الممكن إعداد أي إعدادات افتراضية في SQLServer من شأنها أن تجعل هذا الأمر أكثر بساطة؟

ملاحظة: نحتاج أيضًا إلى ترقية كود Oracle الخاص بنا

هل كانت مفيدة؟

المحلول

أوراكل لا تتطلب منك أن تستخدمها nvarchar لتخزين سلاسل Unicode - يمكن تكوين الخادم للتخزين varchar2 في UTF-8.إذا كنت تدعم ASCII فقط من قبل، فيجب أن يكون الأمر شفافًا.من المفترض أن يمنع ذلك الحاجة إلى جميع عمليات البحث والاستبدال من جانب التطبيق ' ل N'.

أما بالنسبة لنقطة داميان:قد لا يساعدك ذلك الآن، ولكن يجب أن تجعل التخلص من الاستعلامات غير ذات المعلمات أولوية حقًا.إنها ليست سوى عبئ على نظامك من وجهة نظر الصيانة والأداء والسلامة.

نصائح أخرى

من الواضح في SQL Server أن حدود nchar/nvarchar هي نصف نظيراتها من char/varchar (إلا إذا قمت بترحيل كل شيء> 4000 إلى nvarchar(max))

داميان

لست متأكدًا من مدى فائدة إجابتك.لدينا 700000 سطر كبير من قاعدة التعليمات البرمجية المجمعة التي تمت كتابتها على مدار السنوات العشر الماضية والتي تحتوي على عدد كبير من استعلامات SQL.يتم توحيد معظمها في عدد قليل من الوظائف التي تشكل الأساس لمعظم التحديثات على قاعدة البيانات.يمكن تحديثها بكل بساطة.ومع ذلك، نحتاج أيضًا إلى التحقق من كل عبارة حيث لـ CustomerName = '%s' والتي يجب أن تكون الآن CustomerName = N'%s'

هذا سؤال حقيقي يحتاج إلى إجابة حقيقية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top