كيف أقوم بإنشاء رابط ODBC Jet لعرض SQL Server مع فترات في أسماء الحقول؟
-
03-07-2019 - |
سؤال
أحتاج إلى إنشاء رابط ODBC من قاعدة بيانات Access 2003 (JET) إلى طريقة عرض مستضافة خادم SQL والتي تحتوي على أسماء الحقول المستعارة التي تحتوي على فترات مثل:
Seq.Group
في مصدر SQL وراء العرض ، يتم تغليف أسماء الحقول بين قوسين مربعة ...
SELECT Table._Group AS [Seq.Group]
... لذلك لا يشتكي SQL Server من إنشاء طريقة العرض ، ولكن عندما أحاول إنشاء رابط ODBC إليه من Jet DB (إما برمجيًا أو عبر واجهة مستخدم Access 2003) ، أتلقى رسالة الخطأ:
"seq.group" ليس اسمًا صالحًا. تأكد من أنه لا يتضمن أحرفًا غير صالحة أو علامات ترقيم وأنه لم يمض وقت طويل.
لسوء الحظ ، لا يمكنني تعديل بنية العرض لأنه جزء من منتج آخر ، لذلك أنا عالق مع أسماء الحقل بالطريقة التي هم بها. أنا استطاع أضف وجهة نظري الخاصة بأسماء الحقول الخالية من علامات الترقيم ، لكنني أفضل عدم تعديل خادم SQL على الإطلاق لأنه يصبح ذلك نقطة أخرى للصيانة في كل مرة يكون هناك ترقية ، وإصلاح ساخنة ، وما إلى ذلك. هل يعرف أي شخص حلًا أفضل؟
المحلول
على الرغم من أنني لم ينتهي الأمر تقنيًا بالهروب من النقطة ، إلا أن اقتراحك في الواقع فعلت اجعلني أدرك بديلاً آخر. بينما أتساءل كيف سأقوم "بتمرير" رمز الهروب إلى خادم "SQL" ، فقد فجرني: لماذا لا تستخدم "استعلام SQL تمرير" بدلاً من جدول مرتبط ODBC؟ بما أنني بحاجة فقط إلى قراءة الوصول إلى بيانات SQL Server ، فهي تعمل بشكل جيد! شكرًا!
نصائح أخرى
مجرد التخمين هنا: هل حاولت الهروب من النقطة؟ شيء مثل [seq .group]؟
هناك اقتراح آخر هو إضافة طريقة عرض جديدة على خادم SQL الخاص بك ، وليس تعديل العرض الحالي. حتى لو كان العرض الأولي الخاص بك جزءًا من "الحل" ، فلا شيء يمنعك من إضافة طرق عرض جديدة:
SELECT Table._Group AS [Seq_Group]