الأحد، 13 نوفمبر 2022

حل مشكلة ظهور الحروف العربية على شكل علامات استفهام في SQL Server

 

 

 السلام عليكم ورحمة الله وبركاته، مشكل الترميز في نظام إدارة قواعد البيانات SQL Server 2008 يتسبب أحيانا في إظهار الكتابات العربية على شكل علامات استفهام لأن الترتيب الافتراضي  Collation لا يدعم ترميز الحروف العربية، وبالتالي وجب تغيير نمط الترتيب واختيار أحد الأنماط الداعمة للغتنا، وهذه صورة للمشكلة:

حل المشكلة

قد تبحث على النت فتجد طرقا كثيرة جدا لكنها ستستنزف وقتك وأحيانا لن تفي بالغرض لأنك قد تواجه مشاكل قاعدة البيانات أحادية ومتعددة الاستخدام  Single_User and Multi-User Modes أو مشاكل أخرى، لذلك ارتأيت أن أختصر عليك الجهد في أسطر ثلاثة إذا قمت بنتفيذها ستنتهي مشكلة الترميز.
قم بإضافة محرر استعلامات جديد:

الآن قم بنسخ الأوامر التالية في محرر الاستعلامات ثم اضغط على زر التنفيذ Execute أو اضغط على الزر F5، مع الأخذ بعين الاعتبار تغيير اسم قاعدة البيانات إلى إسم قاعدة البيانات الخاصة بك:

USE master
ALTER DATABASE YourDatabaseName SET SINGLE_USER;
ALTER DATABASE YourDatabaseName COLLATE Arabic_CI_AS;
ALTER DATABASE YourDatabaseName SET MULTI_USER;


شرح الأوامر

في السطر الأول حددنا قاعدة البيانات الرئيسية master التي استخدمناها من أجل تنفيذ أوامر تغيير الترميز.
في السطر الثاني قمنا بتغيير وضع الاتصال بقاعدة البيانات التي نريد تحويل ترميزها إلى الوضع الأحادي SINGLE_USER، ثم في السطر الثالث قمنا بتغيير ترتيب الترميز إلى اللغة العربية Arabic_CI_AS، وفي السطر الأخير قمنا بإرجاع قاعدة البيانات إلى الوضع المتعدد MULTI_USER.
علما أنه توجد مجموعة من الأنماط الأخرى الداعمة لغة العربية حسب البلدان العربية ويمكنك الاطلاع عليها من خلال عمل Right Click على قاعدة البيانات ثم اختيار Properties، بعد ذلك ادخل على التبويب Options، ستظهر لك قائمة منسدلة إلى جانبها Collation قم بالدخول إليها وستجد مجموعة من الترميزات العربية حسب البلدان العربية وكلها تبدأ بالمقدمة Arabic.


ملاحظة

الطريقة التي رأيناها فعالة جدا إذا قمنا بها قبل إنشاء الجداول، أما إن كانت الجداول منشأة مسبقا فقد لا تتأثر بعملية تغيير ترميز الحروف Collation، لذلك وجب في حالة بقاء الخلل في الجداول الموجودة مسبقا أن تقوم بفتح الجدول في وضع التعديل Design Mode، ثم تحدد الحقل الذي تريد تخزين قيم عربية داخله وتذهب إلى خصائصه وتعدل الخاصية Collation التابعة له وبهذا ينتهي المشكل جذريا (عملية تعديل ترميز الحقل كما يلي):


ليست هناك تعليقات:

إرسال تعليق

حل مشكلة ظهور الحروف العربية على شكل علامات استفهام في SQL Server

     السلام عليكم ورحمة الله وبركاته، مشكل الترميز في نظام إدارة قواعد البيانات SQL Server 2008 يتسبب أحيانا في إظهار الكتابات العربية على ...