مشاركة عبر


الاتصال بـSQL Database باستخدام C وC++

ينطبق على:قاعدة بيانات Azure SQL

يستهدف هذا المنشور مطوري C وC ++ الذين يحاولون الاتصال بـAzure SQL Database. يتم تقسيمها إلى أقسام حتى تتمكن من الانتقال إلى القسم الذي يجذب اهتمامك بشكل أكبر.

المتطلبات الأساسية لبرنامج C/C++ التعليمي

تأكد من أن لديك العناصر التالية:

Azure SQL Database وSQL Server على الأجهزة الظاهرية

يتم إنشاء Azure SQL Database على Microsoft SQL Server ويتم تصميمها لتوفير خدمة عالية التوفر والأداء وقابلة للتطوير. هناك العديد من الفوائد لاستخدام Azure SQL على قاعدة البيانات الخاصة التي تعمل محلياً. باستخدام Azure SQL، لن تضطر إلى تثبيت قاعدة بياناتك أو إعدادها أو الاحتفاظ بها أو إدارتها بل المحتوى وبنية قاعدة بياناتك فقط. الأشياء النموذجية التي نقلق بشأنها مع قواعد البيانات مثل التسامح مع الخطأ والتكرار جميعها مدمجة.

يتضمن Azure حالياً خيارين لاستضافة أحمال عمل خادم SQL: Azure SQL Database وقاعدة البيانات كخدمة وخادم SQL على الأجهزة الظاهرية. لن ندخل في التفاصيل حول الاختلافات بين هذين الخيارين باستثناء أن Azure SQL Database هو الأفضل لك للتطبيقات الجديدة المستندة إلى السحابة للاستفادة من توفير التكاليف وتحسين الأداء الذي توفره الخدمات السحابية. إذا كنت تفكر في ترحيل تطبيقاتك المحلية أو توسيعها إلى السحابة، فقد يعمل خادم SQL على جهاز Azure الظاهري بشكل أفضل. لتبسيط الأمور في هذه المقالة، دعنا ننشئ Azure SQL Database.

تقنيات الوصول إلى البيانات: ODBC وOLE DB

لا يختلف الاتصال بـAzure SQL Database وتوجد طريقتان حالياً للاتصال بقواعد البيانات: ODBC (اتصال قاعدة البيانات المفتوح) وOLE DB (ارتباط العناصر بقاعدة البيانات وتضمينها). في السنوات الأخيرة، قامت Microsoft بالمواءمة مع ODBC للوصول الأصلي إلى البيانات العلائقية. يعد ODBC بسيطاً نسبياً وأسرع أيضاً من OLE DB. التحذير الوحيد هنا هو أن ODBC يستخدم واجهة برمجة تطبيقات قديمة على نمط C.

الخطوة 1: إنشاء قاعدة بيانات Azure SQL الخاصة بك

راجع صفحة البدء للتعرف على كيفية إنشاء نموذج قاعدة بيانات. وبدلاً من ذلك، يمكنك متابعة مقطع الفيديو القصير هذا ومدته دقيقتان لإنشاء Azure SQL Database باستخدام مدخل Microsoft Azure.

الخطوة 2: الحصول على سلسلة الاتصال

بعد إدراج استخدام Azure SQL Database، تحتاج إلى تنفيذ الخطوات التالية لتحديد معلومات الاتصال وإضافة عنوان IP الخاص بالعميل للوصول إلى جدار الحماية.

في مدخل Microsoft Azure ، انتقل إلى سلسلة اتصال Azure SQL Database ODBC الخاصة بك باستخدام إظهار سلاسل اتصال قاعدة البيانات المدرجة كجزء من قسم النظرة العامة لقاعدة بياناتك:

ODBCConnectionString

ODBCConnectionStringProps

انسخ محتويات سلسلة ODBC (بما في ذلك Node.js) [مصادقة SQL] . نستخدم هذه السلسلة لاحقاً للاتصال من مترجم سطر أوامر C++ ODBC الخاص بنا. توفر هذه السلسلة تفاصيل مثل برنامج التشغيل والخادم ومعلمات اتصال قاعدة البيانات الأخرى.

الخطوة 3: إضافة عنوان IP الخاص بك إلى جدار الحماية

انتقل إلى قسم جدار الحماية لخادمك وأضف عنوان IP للعميل إلى جدار الحماية باستخدام هذه الخطوات للتأكد من أننا نستطيع إنشاء اتصال ناجح:

AddyourIPWindow

في هذه المرحلة، تكون قد قمت بتكوين Azure SQL Database الخاصة بك وأصبحت جاهزاً للاتصال من التعليمة البرمجية C++ الخاصة بك.

الخطوة 4: الاتصال من تطبيق Windows C/C++

يمكنك الاتصال بسهولة بـAzure SQL Database باستخدام ODBC على Windows باستخدام هذا النموذج الذي يتم إنشاؤه باستخدام Visual Studio. يقوم النموذج بتنفيذ مترجم سطر أوامر ODBC والذي يمكن استخدامه للاتصال بـAzure SQL Database الخاصة بنا. يأخذ هذا النموذج إما ملف اسم مصدر قاعدة البيانات (DSN) كوسيطة لسطر الأوامر أو سلسلة الاتصال المطولة التي قمنا بنسخها سابقاً من مدخل Microsoft Azure. اجلب صفحة الخصائص لهذا المشروع والصق سلسلة الاتصال كوسيطة أمر كما هو موضح هنا:

DSN Propsfile

تأكد من توفير تفاصيل المصادقة الصحيحة لقاعدة البيانات الخاصة بك كجزء من سلسلة اتصال قاعدة البيانات هذه.

قم بتشغيل التطبيق لإنشائه. ينبغي أن ترى النافذة التالية للتحقق من صحة الاتصال الناجح. يمكنك حتى تشغيل بعض أوامر SQL الأساسية مثل إنشاء جدول للتحقق من اتصال قاعدة البيانات الخاصة بك:

SQL Commands

وبدلاً من ذلك، يمكنك إنشاء ملف DSN باستخدام المعالج الذي يتم تشغيله عندما لا يتم توفير وسيطات الأمر. نوصي بتجربة هذا الخيار أيضاً. يمكنك استخدام ملف DSN هذا للأتمتة وحماية إعدادات المصادقة الخاصة بك:

Create DSN File

تهانينا! لقد نجحت الآن في الاتصال بـAzure SQL باستخدام C++ وODBC على Windows. يمكنك متابعة القراءة لفعل الشيء نفسه لنظام Linux الأساسي أيضاً.

الخطوة 5: الاتصال من تطبيق Linux C/C++

في حال لم تصل إلى جديد، يتيح لك Visual Studio الآن تطوير تطبيق C++ Linux أيضاً. يمكنك القراءة عن هذا السيناريو الجديد في مدونة Visual C++ لتطوير Linux. لإنشاء نظام Linux، أنت بحاجة إلى جهاز بعيد تعمل به توزيعة Linux الخاصة بك. إذا لم يكن لديك جهازاً متاحاً، يمكنك إعداد جهاز بسرعة باستخدام Linux Azure Virtual Machines.

في هذا البرنامج التعليمي، دعنا نفترض أن لديك توزيع Ubuntu 16.04 Linux تم إعداده. ينبغي أن تنطبق الخطوات هنا أيضاً على Ubuntu 15.10 وRed Hat 6 وRed Hat 7.

تقوم الخطوات التالية بتثبيت المكتبات اللازمة لـSQL وODBC للتوزيعة الخاصة بك:

    sudo su
    sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/mssql-ubuntu-test/ xenial main" > /etc/apt/sources.list.d/mssqlpreview.list'
    sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
    apt-get update
    apt-get install msodbcsql
    apt-get install unixodbc-dev-utf16 #this step is optional but recommended*

قم بتشغيل Visual Studio. ضمن Tools- > Options -> Cross Platform ->Connection Manager، أضف اتصالاً إلى مربع Linux الخاص بك:

Tools Options

بعد إنشاء الاتصال عبر SSH، أنشئ Empty project (Linux) template:

New project template

يمكنك بعد ذلك إضافة ملف مصدر C جديد واستبداله بهذا المحتوى. باستخدام واجهات برمجة تطبيقات ODBC SQLAllocHandle وSQLSetConnectAttr وSQLDriverConnect، ينبغي أن تتمكن من تكوين وإنشاء اتصال بقاعدة بياناتك. كما هو الحال مع نموذج Windows ODBC، تحتاج إلى استبدال استدعاء SQLDriverConnect مع التفاصيل من معلمات سلسلة اتصال قاعدة بياناتك التي تم نسخها من مدخل Microsoft Azure مسبقاً.

     retcode = SQLDriverConnect(
        hdbc, NULL, "Driver=ODBC Driver 13 for SQL"
                    "Server;Server=<yourserver>;Uid=<yourusername>;Pwd=<"
                    "yourpassword>;database=<yourdatabase>",
        SQL_NTS, outstr, sizeof(outstr), &outstrlen, SQL_DRIVER_NOPROMPT);

الشيء الأخير الذي يجب فعله قبل التحويل البرمجي هو إضافة odbc كعنصر تابع للمكتبة:

Adding ODBC as an input library

لبدء تشغيل تطبيقك، اجلب Linux Console من قائمة Debug:

Linux Console

إذا كان الاتصال ناجحاً، فينبغي أن تشاهد الآن اسم قاعدة البيانات الحالية مطبوعاً في Linux Console:

Linux Console Window Output

تهانينا! لقد أكملت البرنامج التعليمي بنجاح ويمكنك الآن الاتصال بـAzure SQL Database من C++ على أنظمة Windows وLinux الأساسية.

احصل على حل كامل للبرنامج التعليمي C/C++

يمكنك العثور على حل GetStarted الذي يحتوي على جميع النماذج في هذه المقالة على GitHub:

الخطوات التالية

الموارد الإضافية